Module: wine Branch: refs/heads/master Commit: 96f6a22ece54672c9e232d388c803646daab5881 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=96f6a22ece54672c9e232d38...
Author: Robert Shearman rob@codeweavers.com Date: Fri Mar 31 12:47:22 2006 +0100
widl: Only write the buffer incrementing code for the marshaling and unmarshaling phases.
Only write the buffer incrementing code for the marshaling and unmarshaling phases - buffer sizing is handled elsewhere and freeing isn't applicable.
---
tools/widl/typegen.c | 45 ++++++++++++++++++++++++--------------------- 1 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 096173f..d31110a 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -1704,30 +1704,33 @@ void write_remoting_arguments(FILE *file size = 0; }
- print_file(file, indent, - "_StubMsg.Buffer = (unsigned char *)(((long)_StubMsg.Buffer + %u) & ~0x%x);\n", - size - 1, size - 1); - - if (phase == PHASE_MARSHAL) - { - print_file(file, indent, "*("); - write_type(file, var->type, NULL, var->tname); - fprintf(file, " *)_StubMsg.Buffer = *"); - write_name(file, var); - fprintf(file, ";\n"); - } - else if (phase == PHASE_UNMARSHAL) + if (phase == PHASE_MARSHAL || phase == PHASE_UNMARSHAL) { - print_file(file, indent, (pass == PASS_IN) ? "" : "*"); - write_name(file, var); - fprintf(file, (pass == PASS_IN) ? " = (" : " = *("); + print_file(file, indent, + "_StubMsg.Buffer = (unsigned char *)(((long)_StubMsg.Buffer + %u) & ~0x%x);\n", + size - 1, size - 1); + + if (phase == PHASE_MARSHAL) + { + print_file(file, indent, "*("); + write_type(file, var->type, NULL, var->tname); + fprintf(file, " *)_StubMsg.Buffer = *"); + write_name(file, var); + fprintf(file, ";\n"); + } + else if (phase == PHASE_UNMARSHAL) + { + print_file(file, indent, (pass == PASS_IN) ? "" : "*"); + write_name(file, var); + fprintf(file, (pass == PASS_IN) ? " = (" : " = *("); + write_type(file, var->type, NULL, var->tname); + fprintf(file, " *)_StubMsg.Buffer;\n"); + } + + print_file(file, indent, "_StubMsg.Buffer += sizeof("); write_type(file, var->type, NULL, var->tname); - fprintf(file, " *)_StubMsg.Buffer;\n"); + fprintf(file, ");\n"); } - - print_file(file, indent, "_StubMsg.Buffer += sizeof("); - write_type(file, var->type, NULL, var->tname); - fprintf(file, ");\n"); } else {