Rob Shearman : widl: Don't pre-calculate buffer size for arrays that aren' t treated as reference pointers.

Alexandre Julliard julliard at winehq.org
Tue Mar 23 12:12:49 CDT 2010


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

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Tue Mar 23 13:33:01 2010 +0000

widl: Don't pre-calculate buffer size for arrays that aren't treated as reference pointers.

---

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

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index ca0faf1..c9f9549 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -3069,9 +3069,10 @@ static unsigned int get_required_buffer_size_type(
         break;
 
     case TGT_ARRAY:
-        /* FIXME: depends on pointer type */
-        return type_array_get_dim(type) *
-            get_required_buffer_size_type(type_array_get_element(type), name, NULL, FALSE, alignment);
+        if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_RP)
+            return type_array_get_dim(type) *
+                get_required_buffer_size_type(type_array_get_element(type), name,
+                                              NULL, FALSE, alignment);
 
     default:
         break;




More information about the wine-cvs mailing list