Alexandre Julliard : widl: Only return a buffer size for fixed-size arrays.

Alexandre Julliard julliard at winehq.org
Wed May 25 11:28:11 CDT 2011


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue May 24 22:30:23 2011 +0200

widl: Only return a buffer size for fixed-size arrays.

---

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

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 2d2bd75..51f531d 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -3214,9 +3214,17 @@ static unsigned int get_required_buffer_size_type(
 
     case TGT_ARRAY:
         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);
+        {
+            switch (get_array_fc(type))
+            {
+            case RPC_FC_SMFARRAY:
+            case RPC_FC_LGFARRAY:
+                return type_array_get_dim(type) *
+                    get_required_buffer_size_type(type_array_get_element(type), name,
+                                                  NULL, FALSE, alignment);
+            }
+        }
+        break;
 
     default:
         break;




More information about the wine-cvs mailing list