X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fwires%2FWireArray.java;h=c2e974aebe23377facf4be3ab6720b8b54bd2f2c;hb=bcf8d773c7a836c2ee17e17a49c296ebf31d2777;hp=add55f719326acf153694564c41b57b9b840053c;hpb=7f37c7b2431309e49a0ee116d1ee6c173272e926;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/wires/WireArray.java b/era.mi/src/era/mi/logic/wires/WireArray.java index add55f71..c2e974ae 100644 --- a/era.mi/src/era/mi/logic/wires/WireArray.java +++ b/era.mi/src/era/mi/logic/wires/WireArray.java @@ -42,8 +42,9 @@ public class WireArray WireArrayInput input = inputs.get(0); if (!Arrays.equals(input.getValues(), values)) { + Bit[] oldValues = values.clone(); System.arraycopy(input.getValues(), 0, values, 0, length); - notifyObservers(); + notifyObservers(oldValues); } } @@ -69,8 +70,9 @@ public class WireArray if (!Arrays.equals(newValues, values)) { - notifyObservers(); + Bit[] oldValues = values; values = newValues; + notifyObservers(oldValues); } } @@ -217,10 +219,10 @@ public class WireArray return observers.add(ob); } - private void notifyObservers() + private void notifyObservers(Bit[] oldValues) { for (WireArrayObserver o : observers) - o.update(this); + o.update(this, oldValues); } /**