Generate code without L-value casts. Fix remaining issues.

svn path=/trunk/; revision=14320
This commit is contained in:
Eric Kohl 2005-03-25 21:29:11 +00:00
parent 8ac9a09484
commit 63fa5da683
3 changed files with 21 additions and 3 deletions

View file

@ -1,5 +1,12 @@
ChangeLog 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 2005-03-21 navaraf
tools/widl/client.c tools/widl/client.c

View file

@ -613,7 +613,11 @@ static void unmarshall_out_arguments(func_t *func)
write_name(client, var); write_name(client, var);
fprintf(client, " = *(("); fprintf(client, " = *((");
write_type(client, var->type, NULL, var->tname); 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; last_size = size;
@ -659,7 +663,11 @@ static void unmarshall_out_arguments(func_t *func)
print_client("_StubMsg.Buffer += %u;\n", alignment); print_client("_StubMsg.Buffer += %u;\n", alignment);
print_client("_RetVal = *(("); print_client("_RetVal = *((");
write_type(client, def->type, def, def->tname); 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");
} }
} }

View file

@ -529,7 +529,10 @@ static void unmarshall_in_arguments(func_t *func, unsigned int *type_offset)
write_name(server, var); write_name(server, var);
fprintf(server, " = *(("); fprintf(server, " = *((");
write_type(server, var->type, NULL, var->tname); 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"); fprintf(server, "\n");
} }
else if (var->ptr_level == 1) else if (var->ptr_level == 1)