aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Smolens <jared.smolens@arm.com>2021-09-17 21:58:27 -0700
committerJared Smolens <jared.smolens@arm.com>2021-09-20 11:14:37 -0700
commitc94e63dc274e1681f20c3fed1837ea49452d03ed (patch)
treef1a78b9b88f80732d5a2f62f7678f2be542f651a
parentf414b3c9250d148c0a125e88967a1e9b603fa5e8 (diff)
downloadreference_model-c94e63dc274e1681f20c3fed1837ea49452d03ed.tar.gz
Compatibility with flatbuffers 1.12.0 and 2.0.0
- Update the serialization code to work with both flatbuffers 1.12.0 and 2.0.0 APIs Change-Id: If41da785a2ab756de94b523d04358489ef01d603 Signed-off-by: Jared Smolens <jared.smolens@arm.com>
-rw-r--r--verif/tosa_serializer.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/verif/tosa_serializer.py b/verif/tosa_serializer.py
index 22ebb52..d9c3633 100644
--- a/verif/tosa_serializer.py
+++ b/verif/tosa_serializer.py
@@ -751,28 +751,43 @@ class TosaSerializer:
start_fcn(builder, len(fb_strs))
for s in fb_strs[::-1]:
builder.PrependUOffsetTRelative(s)
- return builder.EndVector(len(fb_strs))
+ # This try/except block supports both the Flatbuffers 2.x and 1.x APIs,
+ # defaulting to 2.x. If/when Flatbuffers 1.x support is deprecated, the
+ # try block and builder.EndVector(len) function calls can be removed.
+ try:
+ return builder.EndVector()
+ except TypeError:
+ return builder.EndVector(len(fb_strs))
@staticmethod
def serializeUint8Vec(builder, vec):
builder.StartVector(1, len(vec), 8)
for v in vec[::-1]:
builder.PrependUint8(v)
- return builder.EndVector(len(vec))
+ try:
+ return builder.EndVector()
+ except TypeError:
+ return builder.EndVector(len(vec))
@staticmethod
def serializeInt32Vec(builder, vec):
builder.StartVector(4, len(vec), 4)
for v in vec[::-1]:
builder.PrependInt32(v)
- return builder.EndVector(len(vec))
+ try:
+ return builder.EndVector()
+ except TypeError:
+ return builder.EndVector(len(vec))
@staticmethod
def serializeFpVec(builder, vec):
builder.StartVector(4, len(vec), 4)
for v in vec[::-1]:
builder.PrependFloat32(v)
- return builder.EndVector(len(vec))
+ try:
+ return builder.EndVector()
+ except TypeError:
+ return builder.EndVector(len(vec))
@staticmethod
def serializeObjVec(builder, vec, start_fcn):
@@ -783,7 +798,10 @@ class TosaSerializer:
start_fcn(builder, len(vec))
for v in serialized_vec:
builder.PrependUOffsetTRelative(v)
- return builder.EndVector(len(vec))
+ try:
+ return builder.EndVector()
+ except TypeError:
+ return builder.EndVector(len(vec))
@staticmethod
def toList(val):