From 0cba5b06f5a8f87c4de503468b96ff7df3037f49 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 13 Jun 2011 21:17:52 +0200 Subject: [PATCH] widl: Use the local function as proxy entry for callas interpreted functions. --- tools/widl/proxy.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c index 7bc77538f99..32a5054d41b 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++; } } -- 2.11.4.GIT