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