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

svn path=/trunk/; revision=36982
This commit is contained in:
Eric Kohl 2008-10-26 12:17:36 +00:00
parent 13dcae5f0c
commit 1e39b5fb16

View file

@ -597,10 +597,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;
}