Huw Davies : widl: Initialise [out] only parameters if they are user types or interface pointers.

Alexandre Julliard julliard at winehq.org
Thu Apr 7 07:36:50 CDT 2011


Module: wine
Branch: stable
Commit: 4cfa6a46593863098fa68cf34015dc2ceae78ce0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4cfa6a46593863098fa68cf34015dc2ceae78ce0

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Feb  2 12:16:29 2011 +0000

widl: Initialise [out] only parameters if they are user types or interface pointers.
(cherry picked from commit 5ae2b0f219cb5aed2bdf32746a57a699a32767a2)

---

 tools/widl/typegen.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 8541c5a..e3ea458 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -4038,12 +4038,15 @@ void assign_stub_out_args( FILE *file, int indent, const var_t *func, const char
                 case TGT_ENUM:
                 case TGT_POINTER:
                 case TGT_RANGE:
+                case TGT_IFACE_POINTER:
                     print_file(file, indent, "%s_W%u = 0;\n", local_var_prefix, i);
                     break;
+                case TGT_USER_TYPE:
+                    print_file(file, indent, "memset(&%s_W%u, 0, sizeof(%s_W%u));\n",
+                               local_var_prefix, i, 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:




More information about the wine-cvs mailing list