From 315bd60b98ddc7fd230b248ca5907d0287a50659 Mon Sep 17 00:00:00 2001 From: p1-bmu Date: Tue, 9 Nov 2021 10:50:43 +0100 Subject: [PATCH] CSN1: fix serialization with unset value --- pycrate_csn1/csnobj.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pycrate_csn1/csnobj.py b/pycrate_csn1/csnobj.py index 122bdd1..fc0d3db 100644 --- a/pycrate_csn1/csnobj.py +++ b/pycrate_csn1/csnobj.py @@ -929,15 +929,16 @@ class CSN1List(CSN1Obj): def _to_pack_obj(self): ret = [] - for i, val in enumerate(self._val): - Obj = self._list[i] - # transfer offset and value to Obj - obj_off, obj_val = Obj._off, Obj._val - Obj._off, Obj._val = self._off, val - ret.extend( Obj._to_pack_csn() ) - # restore offset and value - self._off = Obj._off - Obj._off, Obj._val = obj_off, obj_val + if self._val is not None: + for i, val in enumerate(self._val): + Obj = self._list[i] + # transfer offset and value to Obj + obj_off, obj_val = Obj._off, Obj._val + Obj._off, Obj._val = self._off, val + ret.extend( Obj._to_pack_csn() ) + # restore offset and value + self._off = Obj._off + Obj._off, Obj._val = obj_off, obj_val return ret def clone(self):