Rob Shearman : widl: Make write_pointer_tfs more readable.

Alexandre Julliard julliard at winehq.org
Tue Mar 16 11:49:13 CDT 2010


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

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Mon Mar 15 19:29:38 2010 +0000

widl: Make write_pointer_tfs more readable.

Change write_pointer_tfs to rely on the detected type of the type to
determine when to write a simple pointer rather than relying on
typestring_offset not being set anywhere else.

---

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

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 60668dd..19f66c0 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -1404,15 +1404,21 @@ static unsigned int write_pointer_tfs(FILE *file, const attr_list_t *attrs,
     print_start_tfs_comment(file, type, offset);
     update_tfsoff(type, offset, file);
 
-    if (ref->typestring_offset)
-        write_nonsimple_pointer(file, attrs, type,
-                                toplevel_param,
-                                type_pointer_get_ref(type)->typestring_offset,
-                                typestring_offset);
-    else if (type_get_type(ref) == TYPE_BASIC ||
-             type_get_type(ref) == TYPE_ENUM)
+    switch (typegen_detect_type(ref, attrs, TDT_ALL_TYPES))
+    {
+    case TGT_BASIC:
+    case TGT_ENUM:
         *typestring_offset += write_simple_pointer(file, attrs, type,
                                                    toplevel_param);
+        break;
+    default:
+        if (ref->typestring_offset)
+            write_nonsimple_pointer(file, attrs, type,
+                                    toplevel_param,
+                                    type_pointer_get_ref(type)->typestring_offset,
+                                    typestring_offset);
+        break;
+    }
 
     return offset;
 }




More information about the wine-cvs mailing list