Alexandre Julliard : widl: Use the local function as proxy entry for callas interpreted functions.

Alexandre Julliard julliard at winehq.org
Tue Jun 14 11:57:45 CDT 2011


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jun 13 21:17:52 2011 +0200

widl: Use the local function as proxy entry for callas interpreted functions.

---

 tools/widl/proxy.c |   26 ++++++++------------------
 1 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c
index 7bc7753..32a5054 100644
--- a/tools/widl/proxy.c
+++ b/tools/widl/proxy.c
@@ -554,24 +554,14 @@ static int write_proxy_methods(type_t *iface, int skip)
   STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) {
     const var_t *func = stmt->u.var;
     if (!is_callas(func->attrs)) {
-      int missing = 0;
-      const char * fname = get_name(func);
-      if (is_local(func->attrs)) {
-        const statement_t * callas_source = get_callas_source(iface, func);
-        if(!callas_source)
-          missing = 1;
-        else
-          fname = get_name(callas_source->u.var);
-      }
-      if (skip || missing) print_proxy( "0,  /* %s::%s */\n", iface->name, get_name(func));
-      else if (is_interpreted_func( iface, func ))
-      {
-          if (!is_local( func->attrs ) && type_iface_get_inherit(iface))
-              print_proxy( "(void *)-1,  /* %s::%s */\n", iface->name, get_name(func));
-          else
-              print_proxy( "%s_%s_Proxy,\n", iface->name, fname);
-      }
-      else print_proxy( "%s_%s_Proxy,\n", iface->name, get_name(func));
+      if (skip || (is_local(func->attrs) && !get_callas_source(iface, func)))
+          print_proxy( "0,  /* %s::%s */\n", iface->name, get_name(func));
+      else if (is_interpreted_func( iface, func ) &&
+               !is_local( func->attrs ) &&
+               type_iface_get_inherit(iface))
+          print_proxy( "(void *)-1,  /* %s::%s */\n", iface->name, get_name(func));
+      else
+          print_proxy( "%s_%s_Proxy,\n", iface->name, get_name(func));
       i++;
     }
   }




More information about the wine-cvs mailing list