diff options
Diffstat (limited to 'base/src/main/java/bjc/utils/esodata')
| -rw-r--r-- | base/src/main/java/bjc/utils/esodata/SingleTape.java | 7 |
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; |
