Author: sserapion
Date: Sun Dec 14 18:23:37 2008
New Revision: 38090
URL:
http://svn.reactos.org/svn/reactos?rev=38090&view=rev
Log:
Fix 64bit widl stubs.
Modified:
branches/ros-amd64-bringup/reactos/tools/widl/client.c
branches/ros-amd64-bringup/reactos/tools/widl/parser.y
branches/ros-amd64-bringup/reactos/tools/widl/proxy.c
branches/ros-amd64-bringup/reactos/tools/widl/server.c
Modified: branches/ros-amd64-bringup/reactos/tools/widl/client.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools…
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/widl/client.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/widl/client.c [iso-8859-1] Sun Dec 14
18:23:37 2008
@@ -461,7 +461,11 @@
write_stubdescdecl(iface);
write_function_stubs(iface, proc_offset);
+#ifdef TARGET_amd64
+ print_client("#if !defined(__RPC_WIN64__)\n");
+#else
print_client("#if !defined(__RPC_WIN32__)\n");
+#endif
print_client("#error Invalid build platform for this
stub.\n");
print_client("#endif\n");
Modified: branches/ros-amd64-bringup/reactos/tools/widl/parser.y
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools…
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/widl/parser.y [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/widl/parser.y [iso-8859-1] Sun Dec 14
18:23:37 2008
@@ -2062,14 +2062,27 @@
break;
case RPC_FC_RP:
+ return RPC_FC_BOGUS_STRUCT;
+
case RPC_FC_UP:
case RPC_FC_FP:
case RPC_FC_OP:
+ if(sizeof(void*) != 4)
+ return RPC_FC_BOGUST_STRUCT;
+ has_pointer = 1;
+ break;
case RPC_FC_CARRAY:
case RPC_FC_CVARRAY:
case RPC_FC_BOGUS_ARRAY:
+ {
+ unsigned int ptr_type = get_attrv(field->attrs, ATTR_POINTERTYPE);
+ if(!ptr_type || ptr_type == RPC_FC_RP)
+ return RPC_FC_BOGUS_STRUCT;
+ else if (sizeof(void*) != 4)
+ return RPC_FC_BOGUS_STRUCT;
has_pointer = 1;
break;
+ }
/*
* Propagate member attributes
Modified: branches/ros-amd64-bringup/reactos/tools/widl/proxy.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools…
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/widl/proxy.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/widl/proxy.c [iso-8859-1] Sun Dec 14 18:23:37
2008
@@ -704,7 +704,11 @@
write_user_quad_list(proxy);
write_stubdesc(expr_eval_routines);
+#ifdef TARGET_amd64
+ print_proxy( "#if !defined(__RPC_WIN64__)\n");
+#else
print_proxy( "#if !defined(__RPC_WIN32__)\n");
+#endif
print_proxy( "#error Currently only Wine and WIN32 are supported.\n");
print_proxy( "#endif\n");
print_proxy( "\n");
Modified: branches/ros-amd64-bringup/reactos/tools/widl/server.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools…
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/widl/server.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/widl/server.c [iso-8859-1] Sun Dec 14
18:23:37 2008
@@ -401,7 +401,11 @@
write_function_stubs(iface, proc_offset);
- print_server("#if !defined(__RPC_WIN32__)\n");
+#ifdef TARGET_amd64
+ print_server("#if !defined(__RPC_WIN64__)\n");
+#else
+ print_server( "#if !defined(__RPC_WIN32__)\n");
+#endif
print_server("#error Invalid build platform for this
stub.\n");
print_server("#endif\n");