X-Git-Url: https://mograsim.net/gitweb/?p=Mograsim.git;a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2FGenericMemory.java;h=314a748f8d6157149064933327e42c528e7b1874;hp=40873f0020e36c428f0202d77ac96e91d19803cf;hb=b5d55c59d7069171bd928e4a945d9185ee4bc2b0;hpb=f098cd47d06be0cc654532a5fad0e5e89f0ef93c diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/GenericMemory.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/GenericMemory.java index 40873f00..314a748f 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/GenericMemory.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/GenericMemory.java @@ -5,16 +5,16 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; -public abstract class GenericMemory implements Memory +public abstract class GenericMemory implements Memory { private final long minimalAddress, maximalAddress; - private final MemoryDefinition definition; + private final D definition; private final int pageSize = 64; private Set observers = new HashSet<>(); private HashMap pages; - public GenericMemory(MemoryDefinition definition) + public GenericMemory(D definition) { super(); this.definition = definition; @@ -67,18 +67,17 @@ public abstract class GenericMemory implements Memory private class Page { - private Object[] memory; + private T[] memory; + @SuppressWarnings("unchecked") public Page() { - memory = new Object[pageSize]; + memory = (T[]) new Object[pageSize]; } public T getCell(int index) { - @SuppressWarnings("unchecked") - T data = (T) memory[index]; - return data; + return memory[index]; } public void setCell(int index, T data) @@ -111,7 +110,7 @@ public abstract class GenericMemory implements Memory } @Override - public MemoryDefinition getDefinition() + public D getDefinition() { return definition; }