widl: Use IsSimpleRef only for explicitly declared arrays.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-05-29 00:24:05 -05:00 committed by Alexandre Julliard
parent ffe9fee151
commit 02976b655a
1 changed files with 9 additions and 2 deletions

View File

@ -1064,9 +1064,16 @@ static unsigned char get_parameter_fc( const var_t *var, int is_return, unsigned
case TGT_UNION: case TGT_UNION:
case TGT_USER_TYPE: case TGT_USER_TYPE:
case TGT_RANGE: case TGT_RANGE:
*flags |= MustFree;
if (!is_in && is_out) server_size = type_memsize( ref );
break;
case TGT_ARRAY: case TGT_ARRAY:
*flags |= IsSimpleRef | MustFree; *flags |= MustFree;
*typestring_offset = ref->typestring_offset; if (!type_array_is_decl_as_ptr(ref))
{
*flags |= IsSimpleRef;
*typestring_offset = ref->typestring_offset;
}
if (!is_in && is_out) server_size = type_memsize( ref ); if (!is_in && is_out) server_size = type_memsize( ref );
break; break;
case TGT_STRING: case TGT_STRING: