@@ 124,7 124,10 @@ def _unpack_primitive(primitive, data, offset):
elif primitive.type == TypeKind.F64:
return struct.unpack_from('<d', data, offset)[0], offset + 8
elif primitive.type == TypeKind.Bool:
- return struct.unpack_from('<?', data, offset)[0], offset + 1
+ temp = struct.unpack_from('<B', data, offset)[0], offset + 1
+ if temp > 1:
+ raise ValueError("Encountered bool set field with an invalud value at {}".format(offset))
+ return temp == 1
elif primitive.type == TypeKind.Void:
return None, offset
elif primitive.type == TypeKind.String or primitive.type == TypeKind.Data: