Alexandre Julliard : widl: Duplicate the exception handling code between 32-bit and 64-bit.

Alexandre Julliard julliard at winehq.org
Mon Oct 25 10:58:17 CDT 2010


Module: wine
Branch: master
Commit: 4c41dd5fcaa6b2e3cf120794b369eeca2ad073c6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4c41dd5fcaa6b2e3cf120794b369eeca2ad073c6

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Oct 22 19:44:00 2010 +0200

widl: Duplicate the exception handling code between 32-bit and 64-bit.

---

 tools/widl/client.c |    7 ++++---
 tools/widl/server.c |   35 ++++++++++++++++++-----------------
 2 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/tools/widl/client.c b/tools/widl/client.c
index 693227f..b5ac0ae 100644
--- a/tools/widl/client.c
+++ b/tools/widl/client.c
@@ -448,8 +448,6 @@ static void init_client(void)
     print_client( "#define DECLSPEC_HIDDEN\n");
     print_client( "#endif\n");
     print_client( "\n");
-    write_exceptions( client );
-    print_client( "\n");
 }
 
 
@@ -503,6 +501,9 @@ static void write_client_routines(const statement_list_t *stmts)
     unsigned int proc_offset = 0;
     int expr_eval_routines;
 
+    write_exceptions( client );
+    print_client( "\n");
+
     write_formatstringsdecl(client, indent, stmts, need_stub);
     expr_eval_routines = write_expr_eval_routines(client, client_token);
     if (expr_eval_routines)
@@ -530,7 +531,7 @@ void write_client(const statement_list_t *stmts)
 
     if (do_win32 && do_win64)
     {
-        fprintf(client, "\n#ifndef _WIN64\n\n");
+        fprintf(client, "#ifndef _WIN64\n\n");
         pointer_size = 4;
         write_client_routines( stmts );
         fprintf(client, "\n#else /* _WIN64 */\n\n");
diff --git a/tools/widl/server.c b/tools/widl/server.c
index fd64899..513f37b 100644
--- a/tools/widl/server.c
+++ b/tools/widl/server.c
@@ -384,22 +384,6 @@ static void init_server(void)
     print_server( "#define DECLSPEC_HIDDEN\n");
     print_server( "#endif\n");
     print_server( "\n");
-    write_exceptions( server );
-    print_server("\n");
-    print_server("struct __server_frame\n");
-    print_server("{\n");
-    print_server("    __DECL_EXCEPTION_FRAME\n");
-    print_server("    MIDL_STUB_MESSAGE _StubMsg;\n");
-    print_server("};\n");
-    print_server("\n");
-    print_server("static int __server_filter( struct __server_frame *__frame )\n");
-    print_server( "{\n");
-    print_server( "    return (__frame->code == STATUS_ACCESS_VIOLATION) ||\n");
-    print_server( "           (__frame->code == STATUS_DATATYPE_MISALIGNMENT) ||\n");
-    print_server( "           (__frame->code == RPC_X_BAD_STUB_DATA) ||\n");
-    print_server( "           (__frame->code == RPC_S_INVALID_BOUND);\n");
-    print_server( "}\n");
-    print_server( "\n");
 }
 
 
@@ -445,6 +429,23 @@ static void write_server_routines(const statement_list_t *stmts)
     unsigned int proc_offset = 0;
     int expr_eval_routines;
 
+    write_exceptions( server );
+    print_server("\n");
+    print_server("struct __server_frame\n");
+    print_server("{\n");
+    print_server("    __DECL_EXCEPTION_FRAME\n");
+    print_server("    MIDL_STUB_MESSAGE _StubMsg;\n");
+    print_server("};\n");
+    print_server("\n");
+    print_server("static int __server_filter( struct __server_frame *__frame )\n");
+    print_server( "{\n");
+    print_server( "    return (__frame->code == STATUS_ACCESS_VIOLATION) ||\n");
+    print_server( "           (__frame->code == STATUS_DATATYPE_MISALIGNMENT) ||\n");
+    print_server( "           (__frame->code == RPC_X_BAD_STUB_DATA) ||\n");
+    print_server( "           (__frame->code == RPC_S_INVALID_BOUND);\n");
+    print_server( "}\n");
+    print_server( "\n");
+
     write_formatstringsdecl(server, indent, stmts, need_stub);
     expr_eval_routines = write_expr_eval_routines(server, server_token);
     if (expr_eval_routines)
@@ -472,7 +473,7 @@ void write_server(const statement_list_t *stmts)
 
     if (do_win32 && do_win64)
     {
-        fprintf(server, "\n#ifndef _WIN64\n\n");
+        fprintf(server, "#ifndef _WIN64\n\n");
         pointer_size = 4;
         write_server_routines( stmts );
         fprintf(server, "\n#else /* _WIN64 */\n\n");




More information about the wine-cvs mailing list