Skip to content

Commit d39ba1d

Browse files
committed
Hardened project design serialization to step over poison ints and set to 0
1 parent abc6242 commit d39ba1d

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/ttboard/project_design.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,27 @@ def serialize_list(cls, l:list):
135135
if isinstance(element, str):
136136
bts += cls.serialize_string(element)
137137
elif isinstance(element, int):
138-
bts += cls.serialize_int(element, 1)
138+
try:
139+
bts += cls.serialize_int(element, 1)
140+
except OverflowError as e:
141+
log.error(f'Issue serializing: {e}')
142+
log.error(f'Setting as 0')
143+
i = 0
144+
bts += i.to_bytes(1, cls.ByteOrder)
139145
elif isinstance(element, list):
140146
if len(element) != 2:
141147
raise RuntimeError(f'Expecting 2 elements in {element}')
142148
if not isinstance(element[0], int):
143149
raise RuntimeError(f'Expecting int as first in {element}')
144150
if not isinstance(element[1], int):
145151
raise RuntimeError(f'Expecting size as second in {element}')
146-
bts += cls.serialize_int(element[0], element[1])
152+
try:
153+
bts += cls.serialize_int(element[0], element[1])
154+
except OverflowError as e:
155+
log.error(f'Issue serializing: {e}')
156+
log.error(f'Setting as 0')
157+
i = 0
158+
bts += i.to_bytes(element[1], cls.ByteOrder)
147159
else:
148160
RuntimeError(f'Unknown serialize {element}')
149161
return bts

0 commit comments

Comments
 (0)