widl: Structures and arrays with pointers should be complex when generating code for 64-bit platforms.
The non-complex variants depend on the wire size of the structure/array matching the buffer size, but this no longer applies when pointers are 8 bytes instead of 4.
This commit is contained in:
parent
07e8ab45c9
commit
2e0aefc1fd
|
@ -212,14 +212,28 @@ static int get_struct_type(const type_t *type)
|
|||
break;
|
||||
|
||||
case RPC_FC_RP:
|
||||
return RPC_FC_BOGUS_STRUCT;
|
||||
|
||||
case RPC_FC_UP:
|
||||
case RPC_FC_FP:
|
||||
case RPC_FC_OP:
|
||||
if (pointer_size != 4)
|
||||
return RPC_FC_BOGUS_STRUCT;
|
||||
has_pointer = 1;
|
||||
break;
|
||||
|
||||
case RPC_FC_CARRAY:
|
||||
case RPC_FC_CVARRAY:
|
||||
case RPC_FC_BOGUS_ARRAY:
|
||||
{
|
||||
unsigned int ptr_type = get_attrv(field->attrs, ATTR_POINTERTYPE);
|
||||
if (!ptr_type || ptr_type == RPC_FC_RP)
|
||||
return RPC_FC_BOGUS_STRUCT;
|
||||
else if (pointer_size != 4)
|
||||
return RPC_FC_BOGUS_STRUCT;
|
||||
has_pointer = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Propagate member attributes
|
||||
|
|
Loading…
Reference in New Issue