mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-26 09:32:40 +00:00
[Python] Fixed the issue with nested unions relying on InitFromBuf. (#7576)
* feat: Fixed the issue with nested unions relying on InitFromBuf. Problem: Issue #7569 Nested Unions were broken with the introduction of parsing buffers with an initial encoding offset. Fix: Revert the InitFromBuf method to the previous version and introduction of InitFromPackedBuf that allows users to read types from packed buffers applying the offset automatically. Test: Added in TestNestedUnionTables to test the encoding and decoding ability using a nested table with a union field. * fix: Uncommented generate code command
This commit is contained in:
@@ -202,11 +202,15 @@ class MonsterExtraT(object):
|
||||
|
||||
@classmethod
|
||||
def InitFromBuf(cls, buf, pos):
|
||||
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, 0)
|
||||
monsterExtra = MonsterExtra()
|
||||
monsterExtra.Init(buf, pos+n)
|
||||
monsterExtra.Init(buf, pos)
|
||||
return cls.InitFromObj(monsterExtra)
|
||||
|
||||
@classmethod
|
||||
def InitFromPackedBuf(cls, buf, pos=0):
|
||||
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
||||
return cls.InitFromBuf(buf, pos+n)
|
||||
|
||||
@classmethod
|
||||
def InitFromObj(cls, monsterExtra):
|
||||
x = MonsterExtraT()
|
||||
|
||||
Reference in New Issue
Block a user