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");