Module: wine Branch: master Commit: 96a5def6787c543f7fe2050a12aef7219e675bae URL: http://source.winehq.org/git/wine.git/?a=commit;h=96a5def6787c543f7fe2050a12...
Author: Alexandre Julliard julliard@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)