Commit 65610a4c authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

widl: Fix detection of SAFEARRAY pointers when writing array pointers.

This code was introduced in 7d1e3691, but that commit did not account for pointers to normal C arrays. Signed-off-by: 's avatarZebediah Figura <z.figura12@gmail.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 23c0047c
......@@ -200,10 +200,10 @@ unsigned short get_type_vt(type_t *t)
{
if (match(type_array_get_element(t)->name, "SAFEARRAY"))
return VT_SAFEARRAY;
return VT_PTR;
}
else
error("get_type_vt: array types not supported\n");
return VT_PTR;
return VT_CARRAY;
case TYPE_INTERFACE:
if(match(t->name, "IUnknown"))
......
......@@ -1113,7 +1113,7 @@ static int encode_var(
if (target_type & 0x80000000) {
mix_field = ((target_type >> 16) & 0x3fff) | VT_BYREF;
} else if (is_array(ref)) {
} else if (get_type_vt(ref) == VT_SAFEARRAY) {
type_t *element_type = type_alias_get_aliasee(type_array_get_element(ref));
mix_field = get_type_vt(element_type) | VT_ARRAY | VT_BYREF;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment