Module: wine Branch: refs/heads/master Commit: 2eedb11f22345160bb1991f5cc841922849abc49 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=2eedb11f22345160bb1991f5... Author: Robert Shearman <rob(a)codeweavers.com> Date: Tue Jan 24 11:14:38 2006 +0100 widl: Fix detection of varying arrays. Correctly identify structures containing varying arrays as conformant varying structures. --- tools/widl/parser.y | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/widl/parser.y b/tools/widl/parser.y index bbce165..49532a0 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -1258,13 +1258,17 @@ static int get_struct_type(var_t *field) continue; } - if (is_array_type(field->attrs, field->ptr_level, field->array) && - field->array && !field->array->is_const) + if (is_array_type(field->attrs, field->ptr_level, field->array)) { - has_conformance = 1; - if (PREV_LINK(field)) - yyerror("field %s deriving from a conformant array must be the last field in the structure\n", - field->name); + if (field->array && !field->array->is_const) + { + has_conformance = 1; + if (PREV_LINK(field)) + yyerror("field %s deriving from a conformant array must be the last field in the structure\n", + field->name); + } + if (is_attr(field->attrs, ATTR_LENGTHIS)) + has_variance = 1; continue; }