[ros-diffs] [cwittich] 38791: reapply 36982 WIDL: Enable the use of scalar types (non-pointer types) as custom binding handles.

cwittich at svn.reactos.org cwittich at svn.reactos.org
Fri Jan 16 16:16:09 CET 2009


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=38791&r1=38790&r2=38791&view=diff
==============================================================================
--- 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;
 }
 



More information about the Ros-diffs mailing list