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?rev... ============================================================================== --- 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=534... ============================================================================== --- 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)) {