Pass options correctly through from_bytes to FlatArrayMessageReader
This commit is contained in:
@@ -3783,7 +3783,9 @@ cdef class _FlatArrayMessageReader(_MessageReader):
|
|||||||
else:
|
else:
|
||||||
self._object_to_pin = buf
|
self._object_to_pin = buf
|
||||||
|
|
||||||
self.thisptr = new schema_cpp.FlatArrayMessageReader(schema_cpp.WordArrayPtr(<schema_cpp.word*>ptr, sz//8))
|
self.thisptr = new schema_cpp.FlatArrayMessageReader(
|
||||||
|
schema_cpp.WordArrayPtr(<schema_cpp.word*>ptr, sz//8),
|
||||||
|
opts)
|
||||||
|
|
||||||
def __dealloc__(self):
|
def __dealloc__(self):
|
||||||
del self.thisptr
|
del self.thisptr
|
||||||
|
|||||||
@@ -168,3 +168,26 @@ def test_pickle(all_types):
|
|||||||
msg2 = pickle.loads(data)
|
msg2 = pickle.loads(data)
|
||||||
|
|
||||||
test_regression.check_all_types(msg2)
|
test_regression.check_all_types(msg2)
|
||||||
|
|
||||||
|
def test_from_bytes_traversal_limit(all_types):
|
||||||
|
size = 1024
|
||||||
|
bld = all_types.TestAllTypes.new_message()
|
||||||
|
bld.init("structList", size)
|
||||||
|
data = bld.to_bytes()
|
||||||
|
|
||||||
|
msg = all_types.TestAllTypes.from_bytes(data,
|
||||||
|
traversal_limit_in_words=2**62)
|
||||||
|
for i in range(0, size):
|
||||||
|
assert msg.structList[i].uInt8Field == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_from_bytes_packed_traversal_limit(all_types):
|
||||||
|
size = 1024
|
||||||
|
bld = all_types.TestAllTypes.new_message()
|
||||||
|
bld.init("structList", size)
|
||||||
|
data = bld.to_bytes_packed()
|
||||||
|
|
||||||
|
msg = all_types.TestAllTypes.from_bytes_packed(data,
|
||||||
|
traversal_limit_in_words=2**62)
|
||||||
|
for i in range(0, size):
|
||||||
|
assert msg.structList[i].uInt8Field == 0
|
||||||
|
|||||||
Reference in New Issue
Block a user