Module: wine Branch: refs/heads/master Commit: 417a61fa6137a2fe322b91e59fe27ca6b5704b50 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=417a61fa6137a2fe322b91e5...
Author: Eric Kohl eric.kohl@t-online.de Date: Tue Feb 7 12:30:55 2006 +0100
widl: Fix proc format string for explicit binding handles.
---
tools/widl/typegen.c | 27 ++++++++++++++++++--------- 1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index a9c9473..df58428 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -156,6 +156,7 @@ static inline int is_base_type(unsigned case RPC_FC_ENUM16: case RPC_FC_ENUM32: case RPC_FC_ERROR_STATUS_T: + case RPC_FC_BIND_PRIMITIVE: return TRUE;
default: @@ -208,6 +209,12 @@ static size_t write_procformatstring_var CASE_BASETYPE(FC_DOUBLE); CASE_BASETYPE(FC_ERROR_STATUS_T); #undef CASE_BASETYPE + + case RPC_FC_BIND_PRIMITIVE: + print_file(file, indent, "0x%02x, /* FC_IGNORE */\n", RPC_FC_IGNORE); + size = 2; /* includes param type prefix */ + break; + default: error("Unknown/unsupported type: %s (0x%02x)\n", var->name, type->type); size = 0; @@ -1003,7 +1010,7 @@ static size_t write_struct_tfs(FILE *fil
array = find_array_or_string_in_struct(type); current_structure = type; - array_offset = write_array_tfs(file, array->attrs, array->type, + array_offset = write_array_tfs(file, array->attrs, array->type, array->array, array->name, typestring_offset); current_structure = NULL; @@ -1461,6 +1468,11 @@ void marshall_arguments(FILE *file, int alignment = (4 - last_size); break;
+ case RPC_FC_IGNORE: + case RPC_FC_BIND_PRIMITIVE: + /* no marshalling needed */ + continue; + default: error("marshall_arguments: Unsupported type: %s (0x%02x, ptr_level: 0)\n", var->name, var->type->type); size = 0; @@ -1499,10 +1511,6 @@ void marshall_arguments(FILE *file, int case RPC_FC_BOGUS_STRUCT: ndrtype = "ComplexStruct"; break; - case RPC_FC_IGNORE: - case RPC_FC_BIND_PRIMITIVE: - /* no marshalling needed */ - continue; default: error("marshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n", var->name, var->type->type, var->ptr_level); @@ -1636,6 +1644,11 @@ void unmarshall_arguments(FILE *file, in alignment = (4 - last_size); break;
+ case RPC_FC_IGNORE: + case RPC_FC_BIND_PRIMITIVE: + /* no unmarshalling needed */ + continue; + default: error("unmarshall_arguments: Unsupported type: %s (0x%02x, ptr_level: 0)\n", var->name, var->type->type); size = 0; @@ -1674,10 +1687,6 @@ void unmarshall_arguments(FILE *file, in case RPC_FC_BOGUS_STRUCT: ndrtype = "ComplexStruct"; break; - case RPC_FC_IGNORE: - case RPC_FC_BIND_PRIMITIVE: - /* no unmarshalling needed */ - continue; default: error("unmarshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n", var->name, var->type->type, var->ptr_level);