Alexandre Julliard : widl: Also compute buffer size for non-ref pointers.
Alexandre Julliard
julliard at winehq.org
Wed May 25 11:28:12 CDT 2011
Module: wine
Branch: master
Commit: 96a5def6787c543f7fe2050a12aef7219e675bae
URL: http://source.winehq.org/git/wine.git/?a=commit;h=96a5def6787c543f7fe2050a12aef7219e675bae
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue May 24 23:53:11 2011 +0200
widl: Also compute buffer size for non-ref pointers.
---
tools/widl/typegen.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index f6bb2f9..4bdc94c 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -3185,13 +3185,19 @@ static unsigned int get_required_buffer_size_type(
break;
case TGT_POINTER:
- if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_RP)
{
+ unsigned int size, align;
const type_t *ref = type_pointer_get_ref(type);
if (is_string_type( attrs, ref )) break;
- return get_required_buffer_size_type( ref, name, ref->attrs, FALSE, alignment );
+ if (!(size = get_required_buffer_size_type( ref, name, NULL, FALSE, &align ))) break;
+ if (get_pointer_fc(type, attrs, toplevel_param) != RPC_FC_RP)
+ {
+ size += 4 + align;
+ align = 4;
+ }
+ *alignment = align;
+ return size;
}
- break;
case TGT_ARRAY:
if (get_pointer_fc(type, attrs, toplevel_param) == RPC_FC_RP)
More information about the wine-cvs
mailing list