Module: wine Branch: refs/heads/master Commit: 69551fdf74290773516507d605455d661cbad8c9 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=69551fdf74290773516507d6...
Author: Robert Shearman rob@codeweavers.com Date: Tue Jan 24 11:10:08 2006 +0100
widl: Generate NdrNonConformatString* calls for non-conformant string types.
---
tools/widl/typegen.c | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 1cef936..97aaa2d 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -833,9 +833,14 @@ void marshall_arguments(FILE *file, int
if (is_string_type(var->attrs, var->ptr_level, var->array)) { - print_file(file, indent, - "NdrConformantStringMarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d]);\n", - var->name, *type_offset); + if (var->array && var->array->is_const) + print_file(file, indent, + "NdrNonConformantStringMarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d]);\n", + var->name, *type_offset); + else + print_file(file, indent, + "NdrConformantStringMarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d]);\n", + var->name, *type_offset); last_size = 1; } else if (is_array_type(var->attrs, var->ptr_level, var->array)) @@ -1018,9 +1023,14 @@ void unmarshall_arguments(FILE *file, in
if (is_string_type(var->attrs, var->ptr_level, var->array)) { - print_file(file, indent, - "NdrConformantStringUnmarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d], 0);\n", - var->name, *type_offset); + if (var->array && var->array->is_const) + print_file(file, indent, + "NdrNonConformantStringUnmarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d], 0);\n", + var->name, *type_offset); + else + print_file(file, indent, + "NdrConformantStringUnmarshall(&_StubMsg, (unsigned char *)%s, &__MIDL_TypeFormatString.Format[%d], 0);\n", + var->name, *type_offset); last_size = 1; } else if (is_array_type(var->attrs, var->ptr_level, var->array))