Commit 35d1347c authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

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.
parent 2330d73f
......@@ -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");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment