From 249df37bd9e5789c66705cf6b3399c10c5d5024c Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 15 Jan 2018 12:37:32 +0100 Subject: [PATCH] Fixes a bug that prevented the analysis of the BitExtender. --- .../digital/core/arithmetic/BitExtender.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/arithmetic/BitExtender.java b/src/main/java/de/neemann/digital/core/arithmetic/BitExtender.java index 247cb862b..5e666fc16 100644 --- a/src/main/java/de/neemann/digital/core/arithmetic/BitExtender.java +++ b/src/main/java/de/neemann/digital/core/arithmetic/BitExtender.java @@ -48,12 +48,15 @@ public class BitExtender implements Element { final long signMask = Bits.signedFlagMask(inBits); final long extendMask = ~Bits.mask(inBits); - in.addObserver(() -> { - long inValue = in.getValue(); - if ((inValue & signMask) == 0) - out.setValue(inValue); - else - out.setValue(inValue | extendMask); + in.addObserver(new NodeWithoutDelay(out) { + @Override + public void hasChanged() { + long inValue = in.getValue(); + if ((inValue & signMask) == 0) + out.setValue(inValue); + else + out.setValue(inValue | extendMask); + } }).hasChanged(); }