Module: wine Branch: master Commit: 08126d7483bf798e692edec9b8320ad10bbf433c URL: http://source.winehq.org/git/wine.git/?a=commit;h=08126d7483bf798e692edec9b8...
Author: Rob Shearman robertshearman@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; }