widl [4/4]: Detect conformant arrays of user types correctly.
Robert Shearman
rob at codeweavers.com
Thu Oct 18 10:02:40 CDT 2007
Dan Hipschman wrote:
> @@ -1859,6 +1859,7 @@ static int get_struct_type(var_list_t *fields)
> case RPC_FC_OP:
> case RPC_FC_CARRAY:
> case RPC_FC_CVARRAY:
> + case RPC_FC_BOGUS_ARRAY:
> has_pointer = 1;
> break;
>
> @@ -1897,15 +1898,9 @@ static int get_struct_type(var_list_t *fields)
> /* fallthru - treat it as complex */
>
> /* as soon as we see one of these these members, it's bogus... */
> - case RPC_FC_IP:
> case RPC_FC_ENCAPSULATED_UNION:
> case RPC_FC_NON_ENCAPSULATED_UNION:
> - case RPC_FC_TRANSMIT_AS:
> - case RPC_FC_REPRESENT_AS:
> - case RPC_FC_PAD:
> - case RPC_FC_EMBEDDED_COMPLEX:
> case RPC_FC_BOGUS_STRUCT:
> - case RPC_FC_BOGUS_ARRAY:
> return RPC_FC_BOGUS_STRUCT;
> }
> }
>
Hi Dan,
What's the reasoning behind this part of the patch? It seems to me like
most of the cases that you removed from becoming a complex structure are
actually valid. The hunk further up also confuses me - the presence of a
complex array shouldn't just make the resulting structure into a pointer
structure, it should make it into a complex structure, since it can't be
marshalled solely by using memcpy.
--
Rob Shearman
More information about the wine-devel
mailing list