mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-17 02:48:34 +03:00
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:
@@ -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' %
|
||||
|
||||
Reference in New Issue
Block a user