mirror of https://gerrit.osmocom.org/pysim
tlv: Fix recursive initialization from_dict()
When calling from_dict() on a hierarchy of nested BER_TLV_IE, only the first/outer layer of TLV_IE_Collection would get its 'decoded' initialized correctly from the dict. Subsequent layers were not, as the 'decoded=' was passed as parameter during instance initialization. If we first instantiate the class and then call the from_dict() method, the recursive initialization down the full hierarchy works as expected. Change-Id: I795a33ed8dfa8454dc9079c189ab7b2ba64a3b72
This commit is contained in:
parent
04c1302b68
commit
5895380a45
|
@ -373,7 +373,8 @@ class TLV_IE_Collection(metaclass=TlvCollectionMeta):
|
|||
for k in i.keys():
|
||||
if k in self.members_by_name:
|
||||
cls = self.members_by_name[k]
|
||||
inst = cls(decoded=i[k])
|
||||
inst = cls()
|
||||
inst.from_dict(i[k])
|
||||
res.append(inst)
|
||||
else:
|
||||
raise ValueError('%s: Unknown TLV Class %s in %s; expected %s' %
|
||||
|
|
Loading…
Reference in New Issue