sim/generic/multiread: do not return spurious items

This commit is contained in:
Sebastien Bourdeauducq 2012-11-23 23:07:25 +01:00
parent 74721b206f
commit d2c61e6a90
1 changed files with 12 additions and 2 deletions

View File

@ -146,9 +146,19 @@ class Simulator:
if isinstance(obj, Signal): if isinstance(obj, Signal):
return self.rd(obj) return self.rd(obj)
elif isinstance(obj, list): elif isinstance(obj, list):
return [self.multiread(item) for item in obj] r = []
for item in obj:
rd = self.multiread(item)
if isinstance(item, Signal) or rd:
r.append(rd)
return r
elif hasattr(obj, "__dict__"): elif hasattr(obj, "__dict__"):
return dict([(k, self.multiread(v)) for k, v in obj.__dict__.items()]) r = {}
for k, v in obj.__dict__.items():
rd = self.multiread(v)
if isinstance(v, Signal) or rd:
r[k] = rd
return r
def multiwrite(self, obj, value): def multiwrite(self, obj, value):
if isinstance(obj, Signal): if isinstance(obj, Signal):