diff --git a/reactos/tools/widl/ChangeLog b/reactos/tools/widl/ChangeLog index 110ed5aefdc..6739c22e3ec 100644 --- a/reactos/tools/widl/ChangeLog +++ b/reactos/tools/widl/ChangeLog @@ -1,5 +1,12 @@ ChangeLog +2005-03-20 navaraf + + tools/widl/client.c + tools/widl/server.c + +Generate code without L-value casts. + 2005-03-20 ekohl tools/widl/client.c diff --git a/reactos/tools/widl/client.c b/reactos/tools/widl/client.c index c5638f38f78..1231c94f45a 100644 --- a/reactos/tools/widl/client.c +++ b/reactos/tools/widl/client.c @@ -510,6 +510,9 @@ static void marshall_in_arguments(func_t *func, unsigned int *type_offset) fprintf(client, "*"); write_name(client, var); fprintf(client, ";\n"); + print_client("_StubMsg.Buffer += sizeof("); + write_type(client, var->type, NULL, var->tname); + fprintf(client, ");\n"); fprintf(client, "\n"); last_size = size; diff --git a/reactos/tools/widl/server.c b/reactos/tools/widl/server.c index 8f5d3c57b07..fb606a655eb 100644 --- a/reactos/tools/widl/server.c +++ b/reactos/tools/widl/server.c @@ -639,9 +639,13 @@ static void marshall_out_arguments(func_t *func) fprintf(server, "\n"); print_server("*(("); write_type(server, var->type, NULL, var->tname); - fprintf(server, " __RPC_FAR *)_StubMsg.Buffer)++ = *"); + fprintf(server, " __RPC_FAR *)_StubMsg.Buffer) = *"); write_name(server, var); fprintf(server, ";\n"); + + print_server("_StubMsg.Buffer += sizeof("); + write_type(server, var->type, NULL, var->tname); + fprintf(server, ");"); } else { @@ -692,7 +696,10 @@ static void marshall_out_arguments(func_t *func) print_server("_StubMsg.Buffer += %u;\n", alignment); print_server("*(("); write_type(server, def->type, def, def->tname); - fprintf(server, " __RPC_FAR *)_StubMsg.Buffer)++ = _RetVal;\n"); + fprintf(server, " __RPC_FAR *)_StubMsg.Buffer) = _RetVal;\n"); + print_server("_StubMsg.Buffer += sizeof("); + write_type(server, def->type, def, def->tname); + fprintf(server, ");\n"); } }