X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fwires%2FWireArray.java;h=5e09c9141f63ad6239e29d2769bf2585187569ac;hb=f2284b0dcfb187ed6473d0a9903eb99ef31d49c5;hp=29b35754a71b966d012742dac558d812f929d8b0;hpb=9ea0dc9cec7c1fd6adba4bb3806e328470416bd9;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 29b35754..5e09c914 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); } /**