Rob Shearman : widl: Fix write_string_tfs for strings declared as arrays.
Alexandre Julliard
julliard at winehq.org
Mon Sep 17 07:59:55 CDT 2007
Module: wine
Branch: master
Commit: 9a28119dd8e6b9fc715fe5b2f16d3e7881823bfc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9a28119dd8e6b9fc715fe5b2f16d3e7881823bfc
Author: Rob Shearman <rob at codeweavers.com>
Date: Mon Sep 17 09:46:22 2007 +0100
widl: Fix write_string_tfs for strings declared as arrays.
The immediate type will be FC_*ARRAY, so rtype needs to use the referred
type to get the base type.
Also update the typeformat-string offset of the type.
---
tools/widl/typegen.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index a15a969..f585c1f 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -1341,12 +1341,14 @@ static int is_declptr(const type_t *t)
}
static size_t write_string_tfs(FILE *file, const attr_list_t *attrs,
- const type_t *type,
+ type_t *type,
const char *name, unsigned int *typestring_offset)
{
size_t start_offset = *typestring_offset;
unsigned char rtype;
+ update_tfsoff(type, start_offset, file);
+
if (is_declptr(type))
{
unsigned char flag = is_conformant_array(type) ? 0 : RPC_FC_P_SIMPLEPOINTER;
@@ -1365,7 +1367,7 @@ static size_t write_string_tfs(FILE *file, const attr_list_t *attrs,
rtype = type->ref->type;
}
else
- rtype = type->type;
+ rtype = type->ref->type;
if ((rtype != RPC_FC_BYTE) && (rtype != RPC_FC_CHAR) && (rtype != RPC_FC_WCHAR))
{
More information about the wine-cvs
mailing list