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