Rob Shearman : widl: Initialise ref pointers to basic and enum types to 0 in generated server code .
Alexandre Julliard
julliard at winehq.org
Mon Mar 23 12:34:53 CDT 2009
Module: wine
Branch: master
Commit: d38cc9acbcf7fb9619eb1b997276108d8fa8df0e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d38cc9acbcf7fb9619eb1b997276108d8fa8df0e
Author: Rob Shearman <robertshearman at gmail.com>
Date: Fri Mar 20 16:16:25 2009 +0000
widl: Initialise ref pointers to basic and enum types to 0 in generated server code.
Previously it was only done for pointers.
---
tools/widl/typegen.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 07a1d1d..1b7c79d 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -3822,8 +3822,25 @@ void assign_stub_out_args( FILE *file, int indent, const var_t *func, const char
else
{
fprintf(file, " = &%s_W%u;\n", local_var_prefix, i);
- if (is_ptr(var->type) && !last_ptr(var->type))
+ switch (typegen_detect_type(type_pointer_get_ref(var->type), var->attrs, TDT_IGNORE_STRINGS))
+ {
+ case TGT_BASIC:
+ case TGT_ENUM:
+ case TGT_POINTER:
print_file(file, indent, "%s_W%u = 0;\n", local_var_prefix, i);
+ break;
+ case TGT_STRUCT:
+ case TGT_UNION:
+ case TGT_USER_TYPE:
+ case TGT_IFACE_POINTER:
+ case TGT_ARRAY:
+ case TGT_CTXT_HANDLE:
+ case TGT_CTXT_HANDLE_POINTER:
+ case TGT_INVALID:
+ case TGT_STRING:
+ /* not initialised */
+ break;
+ }
i++;
}
More information about the wine-cvs
mailing list