From 17a549a975fb52c699a5d9b2368815bf76898521 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Sun, 20 Mar 2005 21:35:12 +0000 Subject: [PATCH] Generate code without L-value casts. svn path=/trunk/; revision=14237 --- reactos/tools/widl/ChangeLog | 7 +++++++ reactos/tools/widl/client.c | 3 +++ reactos/tools/widl/server.c | 11 +++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) 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"); } }