mirror of
https://github.com/reactos/wine.git
synced 2024-11-27 05:30:30 +00:00
widl: Fix the type offset used in marshaling/unmarshaling.
Make a copy of type_offset so that it only gets incremented once per function, instead of twice.
This commit is contained in:
parent
2330d73f4a
commit
35d1347cfa
@ -103,6 +103,7 @@ static void write_function_stubs(type_t *iface)
|
||||
{
|
||||
var_t *def = func->def;
|
||||
var_t* explicit_handle_var;
|
||||
unsigned int type_offset_func;
|
||||
|
||||
/* check for a defined binding handle */
|
||||
explicit_handle_var = get_explicit_handle_var(func);
|
||||
@ -194,8 +195,11 @@ static void write_function_stubs(type_t *iface)
|
||||
fprintf(client, "\n");
|
||||
|
||||
|
||||
/* make a copy so we don't increment the type offset twice */
|
||||
type_offset_func = type_offset;
|
||||
|
||||
/* marshal arguments */
|
||||
marshall_arguments(client, indent, func, &type_offset, PASS_IN);
|
||||
marshall_arguments(client, indent, func, &type_offset_func, PASS_IN);
|
||||
|
||||
/* send/receive message */
|
||||
/* print_client("NdrNsSendReceive(\n"); */
|
||||
|
@ -102,6 +102,7 @@ static void write_function_stubs(type_t *iface)
|
||||
{
|
||||
var_t *def = func->def;
|
||||
unsigned long buffer_size = 0;
|
||||
unsigned int type_offset_func;
|
||||
|
||||
/* check for a defined binding handle */
|
||||
explicit_handle_var = get_explicit_handle_var(func);
|
||||
@ -200,7 +201,10 @@ static void write_function_stubs(type_t *iface)
|
||||
indent -= 2;
|
||||
fprintf(server, "\n");
|
||||
|
||||
unmarshall_arguments(server, indent, func, &type_offset, PASS_IN);
|
||||
/* make a copy so we don't increment the type offset twice */
|
||||
type_offset_func = type_offset;
|
||||
|
||||
unmarshall_arguments(server, indent, func, &type_offset_func, PASS_IN);
|
||||
}
|
||||
|
||||
print_server("if (_StubMsg.Buffer > _StubMsg.BufferEnd)\n");
|
||||
|
Loading…
Reference in New Issue
Block a user