WIDL: Don't Output __RPC_FAR In Generated Code

Hans Leidekker hans at it.vu.nl
Fri Dec 9 16:38:22 CST 2005


On Friday 09 December 2005 20:21, Robert Shearman wrote:

(note: I see no problem with this patch)

             print_server("*((");
             write_type(server, def->type, def, def->tname);
-            fprintf(server, " __RPC_FAR *)_StubMsg.Buffer)++ = _RetVal;\n");
+            fprintf(server, " *)_StubMsg.Buffer)++ = _RetVal;\n");

I remember sending a patch for the MIDL generated oleaut32/oaidl_p.c to
remove all these lvalue casts that had become illegal with the arrival
of gcc4 ("invalid lvalue in assignment"). To avoid these in widl the code
could read something like this:

             print_server("*(");
             write_type(server, def->type, def, def->tname);
             fprintf(server, " *)_StubMsg.Buffer = _RetVal;\n");
             fprintf(server, "_StubMsg.Buffer += sizeof(");
             write_type(server, def->type, def, def->tname);
             fprintf(server, ");\n");

I don't have my repository at hand now but I can send a patch this weekend.

 -Hans



More information about the wine-devel mailing list