Rob Shearman : widl: Use is_string_type instead of is_attr(..., ATTR_STRING ) for detecting strings.
Alexandre Julliard
julliard at winehq.org
Fri Jan 2 08:25:51 CST 2009
Module: wine
Branch: master
Commit: 10a422ae1455574fd21f92135a2b5c2a9a287664
URL: http://source.winehq.org/git/wine.git/?a=commit;h=10a422ae1455574fd21f92135a2b5c2a9a287664
Author: Rob Shearman <robertshearman at gmail.com>
Date: Fri Jan 2 12:14:50 2009 +0000
widl: Use is_string_type instead of is_attr(..., ATTR_STRING) for detecting strings.
Detecting strings is a bit harder than just looking for the string
attribute, so make sure to use the function which has the purpose of
doing just that.
Fixes compilation of generated server/proxy code when a parameter has
both the [out] and [string] attributes.
---
tools/widl/typegen.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 8852ca0..7810f80 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -2025,7 +2025,7 @@ static size_t write_struct_tfs(FILE *file, type_t *type,
array = find_array_or_string_in_struct(type);
if (array && !processed(array->type))
array_offset
- = is_attr(array->attrs, ATTR_STRING)
+ = is_string_type(array->attrs, array->type)
? write_string_tfs(file, array->attrs, array->type, array->name, tfsoff)
: write_array_tfs(file, array->attrs, array->type, array->name, tfsoff);
@@ -3291,7 +3291,7 @@ void declare_stub_args( FILE *file, int indent, const func_t *func )
LIST_FOR_EACH_ENTRY( var, func->args, const var_t, entry )
{
- int is_string = is_attr(var->attrs, ATTR_STRING);
+ int is_string = is_string_type(var->attrs, var->type);
in_attr = is_attr(var->attrs, ATTR_IN);
out_attr = is_attr(var->attrs, ATTR_OUT);
@@ -3338,7 +3338,7 @@ void assign_stub_out_args( FILE *file, int indent, const func_t *func, const cha
LIST_FOR_EACH_ENTRY( var, func->args, const var_t, entry )
{
- int is_string = is_attr(var->attrs, ATTR_STRING);
+ int is_string = is_string_type(var->attrs, var->type);
in_attr = is_attr(var->attrs, ATTR_IN);
out_attr = is_attr(var->attrs, ATTR_OUT);
if (!out_attr && !in_attr)
More information about the wine-cvs
mailing list