Generate code without L-value casts. Fix remaining issues.
Modified: trunk/reactos/tools/widl/ChangeLog
Modified: trunk/reactos/tools/widl/client.c
Modified: trunk/reactos/tools/widl/server.c

Modified: trunk/reactos/tools/widl/ChangeLog
--- trunk/reactos/tools/widl/ChangeLog	2005-03-25 19:34:26 UTC (rev 14319)
+++ trunk/reactos/tools/widl/ChangeLog	2005-03-25 21:29:11 UTC (rev 14320)
@@ -1,5 +1,12 @@
 ChangeLog
 
+2005-03-25 ekohl
+
+   tools/widl/client.c
+   tools/widl/server.c
+
+Generate code without L-value casts. Fix remaining issues.
+
 2005-03-21 navaraf
 
    tools/widl/client.c

Modified: trunk/reactos/tools/widl/client.c
--- trunk/reactos/tools/widl/client.c	2005-03-25 19:34:26 UTC (rev 14319)
+++ trunk/reactos/tools/widl/client.c	2005-03-25 21:29:11 UTC (rev 14320)
@@ -613,7 +613,11 @@
                     write_name(client, var);
                     fprintf(client, " = *((");
                     write_type(client, var->type, NULL, var->tname);
-                    fprintf(client, " __RPC_FAR *)_StubMsg.Buffer)++;\n");
+                    fprintf(client, " __RPC_FAR *)_StubMsg.Buffer);\n");
+
+                    print_client("_StubMsg.Buffer += sizeof(");
+                    write_type(client, var->type, NULL, var->tname);
+                    fprintf(client, ");\n");
                 }
 
                 last_size = size;
@@ -659,7 +663,11 @@
            print_client("_StubMsg.Buffer += %u;\n", alignment);
        print_client("_RetVal = *((");
        write_type(client, def->type, def, def->tname);
-       fprintf(client, " __RPC_FAR *)_StubMsg.Buffer)++;\n");
+       fprintf(client, " __RPC_FAR *)_StubMsg.Buffer);\n");
+
+       print_client("_StubMsg.Buffer += sizeof(");
+       write_type(client, def->type, def, def->tname);
+       fprintf(client, ");\n");
     }
 }
 

Modified: trunk/reactos/tools/widl/server.c
--- trunk/reactos/tools/widl/server.c	2005-03-25 19:34:26 UTC (rev 14319)
+++ trunk/reactos/tools/widl/server.c	2005-03-25 21:29:11 UTC (rev 14320)
@@ -529,7 +529,10 @@
                         write_name(server, var);
                         fprintf(server, " = *((");
                         write_type(server, var->type, NULL, var->tname);
-                        fprintf(server, " __RPC_FAR*)_StubMsg.Buffer)++;\n");
+                        fprintf(server, " __RPC_FAR*)_StubMsg.Buffer);\n");
+                        print_server("_StubMsg.Buffer += sizeof(");
+                        write_type(server, var->type, NULL, var->tname);
+                        fprintf(server, ");\n");
                         fprintf(server, "\n");
                     }
                     else if (var->ptr_level == 1)