update 3.8 v2 (#2112)
* update 3.8 v2 * update 3.8 --------- Co-authored-by: yuzhai <yuzhai@nvidia.com>
This commit is contained in:
@ -532,29 +532,12 @@ def tuple_factory_(input_tuple, dtype, constants=[0,1]):
|
||||
if first_non_empty_base is None:
|
||||
first_non_empty_base = []
|
||||
|
||||
# Determine whether or not add an additional byte for empty base classes
|
||||
additional_byte = False
|
||||
# Special case for constant tuple
|
||||
if first_non_empty_base is None:
|
||||
additional_byte = False
|
||||
else:
|
||||
for base in first_non_empty_base:
|
||||
if base in empty_bases:
|
||||
additional_byte = True
|
||||
break
|
||||
|
||||
if additional_byte:
|
||||
ctype_fields = [("empty_byte", EmptyByte), ] + ctype_fields
|
||||
|
||||
# Create the ctype tuple
|
||||
class TupleType(ctypes.Structure):
|
||||
_fields_ = ctype_fields
|
||||
|
||||
def __init__(self, args) -> None:
|
||||
if additional_byte:
|
||||
fields = self._fields_[1:]
|
||||
else:
|
||||
fields = self._fields_
|
||||
fields = self._fields_
|
||||
|
||||
assert len(fields) == len(args)
|
||||
for field, arg in zip(fields, args):
|
||||
|
||||
Reference in New Issue
Block a user