Module: wine Branch: master Commit: 9741751962e87074422bfd1c247aec6eee0a0c9c URL: http://source.winehq.org/git/wine.git/?a=commit;h=9741751962e87074422bfd1c24...
Author: Rob Shearman rob@codeweavers.com Date: Wed Dec 12 14:49:34 2007 +0000
widl: Remove some confusion in how version numbers are packed into an attribute by defining some macros for this purpose.
Remove unneeded includes.
---
tools/widl/client.c | 8 ++------ tools/widl/header.c | 9 ++++----- tools/widl/parser.y | 6 ++---- tools/widl/server.c | 13 +++++-------- tools/widl/typegen.c | 1 - tools/widl/utils.h | 4 ++++ 6 files changed, 17 insertions(+), 24 deletions(-)
diff --git a/tools/widl/client.c b/tools/widl/client.c index 9d09671..5cd2a81 100644 --- a/tools/widl/client.c +++ b/tools/widl/client.c @@ -29,16 +29,12 @@ #include <ctype.h> #include <signal.h>
-#include "windef.h" - #include "widl.h" #include "utils.h" #include "parser.h" #include "header.h"
#include "widltypes.h" -#include "typelib.h" -#include "typelib_struct.h" #include "typegen.h"
static FILE* client; @@ -337,7 +333,7 @@ static void write_clientinterfacedecl(type_t *iface) print_client("{{0x%08lx,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},\n", uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], - uuid->Data4[7], LOWORD(ver), HIWORD(ver)); + uuid->Data4[7], MAJORVERSION(ver), MINORVERSION(ver)); print_client("{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n"); /* FIXME */ print_client("0,\n"); if (endpoints) @@ -360,7 +356,7 @@ static void write_clientinterfacedecl(type_t *iface) iface->name, iface->name); else print_client("RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n", - prefix_client, iface->name, LOWORD(ver), HIWORD(ver), iface->name); + prefix_client, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name); fprintf(client, "\n"); }
diff --git a/tools/widl/header.c b/tools/widl/header.c index 16bf82b..fd89534 100644 --- a/tools/widl/header.c +++ b/tools/widl/header.c @@ -31,7 +31,6 @@ #include <ctype.h> #include <signal.h>
-#include "windef.h" #include "widl.h" #include "utils.h" #include "parser.h" @@ -942,7 +941,7 @@ static void write_com_interface(type_t *iface)
static void write_rpc_interface(const type_t *iface) { - unsigned long ver = get_attrv(iface->attrs, ATTR_VERSION); + unsigned int ver = get_attrv(iface->attrs, ATTR_VERSION); const char *var = get_attrp(iface->attrs, ATTR_IMPLICIT_HANDLE); static int allocate_written = 0;
@@ -954,7 +953,7 @@ static void write_rpc_interface(const type_t *iface) }
fprintf(header, "/*****************************************************************************\n"); - fprintf(header, " * %s interface (v%d.%d)\n", iface->name, LOWORD(ver), HIWORD(ver)); + fprintf(header, " * %s interface (v%d.%d)\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); fprintf(header, " */\n"); fprintf(header,"#ifndef __%s_INTERFACE_DEFINED__\n", iface->name); fprintf(header,"#define __%s_INTERFACE_DEFINED__\n\n", iface->name); @@ -970,9 +969,9 @@ static void write_rpc_interface(const type_t *iface) else { fprintf(header, "extern RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec;\n", - prefix_client, iface->name, LOWORD(ver), HIWORD(ver)); + prefix_client, iface->name, MAJORVERSION(ver), MINORVERSION(ver)); fprintf(header, "extern RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec;\n", - prefix_server, iface->name, LOWORD(ver), HIWORD(ver)); + prefix_server, iface->name, MAJORVERSION(ver), MINORVERSION(ver)); } write_function_protos(iface); } diff --git a/tools/widl/parser.y b/tools/widl/parser.y index 0a8af54..6c8337e 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -31,8 +31,6 @@ #include <alloca.h> #endif
-#include "windef.h" - #include "widl.h" #include "utils.h" #include "parser.h" @@ -929,8 +927,8 @@ uniondef: tUNION t_ident '{' fields '}' { $$ = get_typev(RPC_FC_NON_ENCAPSULATE ;
version: - aNUM { $$ = MAKELONG($1, 0); } - | aNUM '.' aNUM { $$ = MAKELONG($1, $3); } + aNUM { $$ = MAKEVERSION($1, 0); } + | aNUM '.' aNUM { $$ = MAKEVERSION($1, $3); } ;
%% diff --git a/tools/widl/server.c b/tools/widl/server.c index f020613..e2c3ac9 100644 --- a/tools/widl/server.c +++ b/tools/widl/server.c @@ -35,10 +35,7 @@ #include "utils.h" #include "parser.h" #include "header.h" -#include "windef.h"
-#include "typelib.h" -#include "typelib_struct.h" #include "typegen.h"
static FILE* server; @@ -285,7 +282,7 @@ static void write_dispatchtable(type_t *iface) print_server("0\n"); indent--; print_server("};\n"); - print_server("RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable =\n", iface->name, LOWORD(ver), HIWORD(ver)); + print_server("RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable =\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); print_server("{\n"); indent++; print_server("%u,\n", method_count); @@ -349,7 +346,7 @@ static void write_serverinterfacedecl(type_t *iface)
if (endpoints) write_endpoints( server, iface->name, endpoints );
- print_server("extern RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable;\n", iface->name, LOWORD(ver), HIWORD(ver)); + print_server("extern RPC_DISPATCH_TABLE %s_v%d_%d_DispatchTable;\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); fprintf(server, "\n"); print_server("static const RPC_SERVER_INTERFACE %s___RpcServerInterface =\n", iface->name ); print_server("{\n"); @@ -358,9 +355,9 @@ static void write_serverinterfacedecl(type_t *iface) print_server("{{0x%08lx,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},\n", uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], - uuid->Data4[7], LOWORD(ver), HIWORD(ver)); + uuid->Data4[7], MAJORVERSION(ver), MINORVERSION(ver)); print_server("{{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},\n"); /* FIXME */ - print_server("&%s_v%d_%d_DispatchTable,\n", iface->name, LOWORD(ver), HIWORD(ver)); + print_server("&%s_v%d_%d_DispatchTable,\n", iface->name, MAJORVERSION(ver), MINORVERSION(ver)); if (endpoints) { print_server("%u,\n", list_count(endpoints)); @@ -381,7 +378,7 @@ static void write_serverinterfacedecl(type_t *iface) iface->name, iface->name); else print_server("RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n", - prefix_server, iface->name, LOWORD(ver), HIWORD(ver), iface->name); + prefix_server, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name); fprintf(server, "\n"); }
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index b293b1a..3bb88da 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -37,7 +37,6 @@ #include "utils.h" #include "parser.h" #include "header.h" -#include "windef.h" #include "wine/list.h"
#include "typegen.h" diff --git a/tools/widl/utils.h b/tools/widl/utils.h index c9cc2ba..1cd3dd3 100644 --- a/tools/widl/utils.h +++ b/tools/widl/utils.h @@ -46,4 +46,8 @@ size_t widl_getline(char **linep, size_t *lenp, FILE *fp); UUID *parse_uuid(const char *u); int is_valid_uuid(const char *s);
+#define MAKEVERSION(major, minor) ((((major) & 0xffff) << 16) | ((minor) & 0xffff)) +#define MAJORVERSION(version) (((version) >> 16) & 0xffff) +#define MINORVERSION(version) ((version) & 0xffff) + #endif