Merge pull request #139 from tundra/develop

Pass options correctly through from_bytes to FlatArrayMessageReader
This commit is contained in:
Jason Paryani
2017-04-09 17:11:21 -07:00
committed by GitHub
2 changed files with 26 additions and 1 deletions

View File

@@ -3761,7 +3761,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