Rob Shearman : widl: Make sure to generate freeing calls for all non-simple structures with pointers and pointers to user marshalled types .

Alexandre Julliard julliard at winehq.org
Mon Dec 10 08:54:31 CST 2007


Module: wine
Branch: master
Commit: 8ead7fe797fb83974a767f09986876c3c34166ef
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8ead7fe797fb83974a767f09986876c3c34166ef

Author: Rob Shearman <rob at codeweavers.com>
Date:   Mon Dec 10 13:30:36 2007 +0000

widl: Make sure to generate freeing calls for all non-simple structures with pointers and pointers to user marshalled types.

---

 tools/widl/typegen.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index e40ac79..346318f 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -2601,7 +2601,9 @@ static int needs_freeing(const attr_list_t *attrs, const type_t *t, int out)
         (is_user_type(t)
          || (is_ptr(t)
              && (t->ref->type == RPC_FC_IP
-                 || is_ptr(t->ref))))
+                 || (is_struct(t->ref->type) && t->ref->type != RPC_FC_STRUCT)
+                 || is_ptr(t->ref)
+                 || is_user_type(t->ref))))
          || (out && is_string_type(attrs, t))
          || is_array(t);
 }




More information about the wine-cvs mailing list