Module: wine Branch: master Commit: 56425e3767689dad544e0f3a7c8e6f39bc13ff7b URL: http://source.winehq.org/git/wine.git/?a=commit;h=56425e3767689dad544e0f3a7c...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Jan 19 17:43:01 2011 +0100
widl: Don't generate proxies for oleautomation interfaces.
---
tools/widl/proxy.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c index 9952179..c945ac0 100644 --- a/tools/widl/proxy.c +++ b/tools/widl/proxy.c @@ -576,8 +576,6 @@ static void write_proxy(type_t *iface, unsigned int *proc_offset) const statement_t *stmt; int first_func = 1;
- /* FIXME: check for [oleautomation], shouldn't generate proxies/stubs if specified */ - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { var_t *func = stmt->u.var; if (first_func) { @@ -701,7 +699,11 @@ static int does_any_iface(const statement_list_t *stmts, type_pred_t pred)
int need_proxy(const type_t *iface) { - return is_object(iface) && !is_local(iface->attrs); + if (!is_object( iface )) return 0; + if (is_local( iface->attrs )) return 0; + if (is_attr( iface->attrs, ATTR_OLEAUTOMATION )) return 0; + if (is_attr( iface->attrs, ATTR_DISPINTERFACE )) return 0; + return 1; }
int need_stub(const type_t *iface)