Author: cwittich Date: Fri Jan 16 09:16:09 2009 New Revision: 38791
URL: http://svn.reactos.org/svn/reactos?rev=38791&view=rev Log: reapply 36982 WIDL: Enable the use of scalar types (non-pointer types) as custom binding handles.
Modified: trunk/reactos/tools/widl/header.c
Modified: trunk/reactos/tools/widl/header.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/header.c?rev=387... ============================================================================== --- trunk/reactos/tools/widl/header.c [iso-8859-1] (original) +++ trunk/reactos/tools/widl/header.c [iso-8859-1] Fri Jan 16 09:16:09 2009 @@ -537,10 +537,18 @@
const type_t* get_explicit_generic_handle_type(const var_t* var) { - const type_t *t; - for (t = var->type; is_ptr(t); t = t->ref) - if (t->type != RPC_FC_BIND_PRIMITIVE && is_attr(t->attrs, ATTR_HANDLE)) - return t; + const type_t *t = var->type; + + if (t->type == RPC_FC_BIND_PRIMITIVE) + return NULL; + + if (!is_ptr(t) && is_attr(t->attrs, ATTR_HANDLE)) + return t; + else + for (; is_ptr(t); t = t->ref) + if (t->type != RPC_FC_BIND_PRIMITIVE && is_attr(t->attrs, ATTR_HANDLE)) + return t; + return NULL; }