ChangeSet ID: 21630 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/12/02 07:15:45
Modified files: tools/widl : header.c
Log message: Vincent BĂ©ron vberon@mecano.gme.usherb.ca Reorder the virtual table definition so it's defined before it is used in widl header output.
Patch: http://cvs.winehq.org/patch.py?id=21630
Old revision New revision Changes Path 1.39 1.40 +8 -10 wine/tools/widl/header.c
Index: wine/tools/widl/header.c diff -u -p wine/tools/widl/header.c:1.39 wine/tools/widl/header.c:1.40 --- wine/tools/widl/header.c:1.39 2 Dec 2005 13:15:45 -0000 +++ wine/tools/widl/header.c 2 Dec 2005 13:15:45 -0000 @@ -827,17 +827,16 @@ static void write_com_interface(type_t * } fprintf(header, "#else\n"); /* C interface */ - fprintf(header, "typedef struct %sVtbl %sVtbl;\n", iface->name, iface->name); - fprintf(header, "interface %s {\n", iface->name); - fprintf(header, " const %sVtbl* lpVtbl;\n", iface->name); - fprintf(header, "};\n"); - fprintf(header, "struct %sVtbl {\n", iface->name); + fprintf(header, "typedef struct %sVtbl {\n", iface->name); indentation++; fprintf(header, " BEGIN_INTERFACE\n"); fprintf(header, "\n"); write_c_method_def(iface); indentation--; fprintf(header, " END_INTERFACE\n"); + fprintf(header, "} %sVtbl;\n", iface->name); + fprintf(header, "interface %s {\n", iface->name); + fprintf(header, " const %sVtbl* lpVtbl;\n", iface->name); fprintf(header, "};\n"); fprintf(header, "\n"); fprintf(header, "#ifdef COBJMACROS\n"); @@ -894,17 +893,16 @@ void write_dispinterface(type_t *iface) fprintf(header, "};\n"); fprintf(header, "#else\n"); /* C interface */ - fprintf(header, "typedef struct %sVtbl %sVtbl;\n", iface->name, iface->name); - fprintf(header, "interface %s {\n", iface->name); - fprintf(header, " const %sVtbl* lpVtbl;\n", iface->name); - fprintf(header, "};\n"); - fprintf(header, "struct %sVtbl {\n", iface->name); + fprintf(header, "typedef struct %sVtbl {\n", iface->name); indentation++; fprintf(header, " BEGIN_INTERFACE\n"); fprintf(header, "\n"); write_c_disp_method_def(iface); indentation--; fprintf(header, " END_INTERFACE\n"); + fprintf(header, "} %sVtbl;\n", iface->name); + fprintf(header, "interface %s {\n", iface->name); + fprintf(header, " const %sVtbl* lpVtbl;\n", iface->name); fprintf(header, "};\n"); fprintf(header, "\n"); fprintf(header, "#ifdef COBJMACROS\n");