Author: jgardou
Date: Sun Aug 28 15:32:08 2011
New Revision: 53480
URL:
http://svn.reactos.org/svn/reactos?rev=53480&view=rev
Log:
[WIDL]
- duplicate type entry for parameters with the range attribute.
This fixes the problem that Eric Kohl detected.
This has already been sent to wine.
Modified:
trunk/reactos/tools/widl/parser.tab.c
trunk/reactos/tools/widl/parser.y
Modified: trunk/reactos/tools/widl/parser.tab.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/parser.tab.c?re…
==============================================================================
--- trunk/reactos/tools/widl/parser.tab.c [iso-8859-1] (original)
+++ trunk/reactos/tools/widl/parser.tab.c [iso-8859-1] Sun Aug 28 15:32:08 2011
@@ -5965,6 +5965,10 @@
array_dims_t *arr = decl ? decl->array : NULL;
type_t *func_type = decl ? decl->func_type : NULL;
type_t *type = decl_spec->type;
+
+ /* In case of a ranged type, duplicate it */
+ if(is_attr(attrs, ATTR_RANGE))
+ type = duptype(type, 1);
if (is_attr(type->attrs, ATTR_INLINE))
{
Modified: trunk/reactos/tools/widl/parser.y
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/parser.y?rev=53…
==============================================================================
--- trunk/reactos/tools/widl/parser.y [iso-8859-1] (original)
+++ trunk/reactos/tools/widl/parser.y [iso-8859-1] Sun Aug 28 15:32:08 2011
@@ -1417,6 +1417,11 @@
array_dims_t *arr = decl ? decl->array : NULL;
type_t *func_type = decl ? decl->func_type : NULL;
type_t *type = decl_spec->type;
+
+ /* In case of a range attribute, duplicate the type to keep track of
+ * the min/max values in the type format string */
+ if(is_attr(attrs, ATTR_RANGE))
+ type = duptype(type, 1);
if (is_attr(type->attrs, ATTR_INLINE))
{