reapply 36982

WIDL: Enable the use of scalar types (non-pointer types) as custom binding handles.

svn path=/trunk/; revision=38791
This commit is contained in:
Christoph von Wittich 2009-01-16 15:16:09 +00:00
parent 9e097bc205
commit c58b26652e

View file

@ -537,10 +537,18 @@ const var_t* get_explicit_handle_var(const func_t* func)
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;
}