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=38…
==============================================================================
--- 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;
}