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.