Pass options correctly through from_bytes to FlatArrayMessageReader

This commit is contained in:
Christian Plesner Hansen
2017-02-15 12:02:41 +01:00
parent 455ffdf4ab
commit 34385afbbd
2 changed files with 26 additions and 1 deletions

View File

@@ -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

View File

@@ -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