Robert Shearman : widl: Only output code for non-object interfaces in client and server.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Mar 31 13:04:48 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 3db71d9d9ca808e37c26e394dccc3df794cece5a
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=3db71d9d9ca808e37c26e394dccc3df794cece5a

Author: Robert Shearman <rob at codeweavers.com>
Date:   Fri Mar 31 12:44:04 2006 +0100

widl: Only output code for non-object interfaces in client and server.

Only output code for non-object interfaces in client and server
generation and convert the while loops into for loops.

---

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

diff --git a/tools/widl/client.c b/tools/widl/client.c
index c2af6b9..528ffbf 100644
--- a/tools/widl/client.c
+++ b/tools/widl/client.c
@@ -491,8 +491,11 @@ void write_client(ifref_t *ifaces)
     if (!client)
         return;
 
-    while (iface)
+    for (; iface; iface = PREV_LINK(iface))
     {
+        if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs))
+            continue;
+
         fprintf(client, "/*****************************************************************************\n");
         fprintf(client, " * %s interface\n", iface->iface->name);
         fprintf(client, " */\n");
@@ -526,8 +529,6 @@ void write_client(ifref_t *ifaces)
                 write_expr_eval_routine_list(client, iface->iface->name);
             write_stubdescriptor(iface->iface, expr_eval_routines);
         }
-
-        iface = PREV_LINK(iface);
     }
 
     fclose(client);
diff --git a/tools/widl/server.c b/tools/widl/server.c
index a7f3a74..3abd35e 100644
--- a/tools/widl/server.c
+++ b/tools/widl/server.c
@@ -601,7 +601,7 @@ void write_server(ifref_t *ifaces)
 
     if (!do_server)
         return;
-    if (!iface)
+    if (!ifaces)
         return;
     END_OF_LIST(iface);
 
@@ -609,8 +609,11 @@ void write_server(ifref_t *ifaces)
     if (!server)
         return;
 
-    while (iface)
+    for (; iface; iface = PREV_LINK(iface))
     {
+        if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs))
+            continue;
+
         fprintf(server, "/*****************************************************************************\n");
         fprintf(server, " * %s interface\n", iface->iface->name);
         fprintf(server, " */\n");
@@ -643,8 +646,6 @@ void write_server(ifref_t *ifaces)
             write_stubdescriptor(iface->iface, expr_eval_routines);
             write_dispatchtable(iface->iface);
         }
-
-        iface = PREV_LINK(iface);
     }
 
     fclose(server);




More information about the wine-cvs mailing list