summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/esodata/SingleTape.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/esodata/SingleTape.java')
-rw-r--r--base/src/main/java/bjc/utils/esodata/SingleTape.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/base/src/main/java/bjc/utils/esodata/SingleTape.java b/base/src/main/java/bjc/utils/esodata/SingleTape.java
index d57bc7f..be9d64b 100644
--- a/base/src/main/java/bjc/utils/esodata/SingleTape.java
+++ b/base/src/main/java/bjc/utils/esodata/SingleTape.java
@@ -79,6 +79,8 @@ public class SingleTape<T> implements Tape<T> {
@Override
public T item() {
+ if (pos < 0 || pos >= backing.size()) return null;
+
return backing.get(pos);
}
@@ -150,13 +152,12 @@ public class SingleTape<T> implements Tape<T> {
@Override
public boolean right(final int amt) {
- if(pos + amt >= backing.size() - 1) {
+ if(pos + amt > backing.size()) {
if(autoExtend) {
while(pos + amt >= backing.size() - 1) {
backing.add(null);
}
- } else
- return false;
+ } else return false;
}
pos += amt;