From 05a486bfa4b7f1c299f56e836e3e212b97cfc940 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Sun, 27 Nov 2016 22:42:32 +0100 Subject: [PATCH] some fixes to IItemStackList impls --- .../refinedstorage/apiimpl/util/ItemStackList.java | 2 +- .../apiimpl/util/ItemStackListOredicted.java | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java index 82b8d3d5a..c70d2fae5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackList.java @@ -127,7 +127,7 @@ public class ItemStackList implements IItemStackList { public void clean() { List> toRemove = stacks.asMap().entrySet().stream() .flatMap(entry -> entry.getValue().stream().map(value -> Pair.of(entry.getKey(), value))) - .filter(pair -> pair.getValue().getCount() <= 0) + .filter(pair -> pair.getValue().isEmpty()) .collect(Collectors.toList()); toRemove.forEach(pair -> stacks.remove(pair.getLeft(), pair.getRight())); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java index 6e8eafa6b..42118dfff 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/ItemStackListOredicted.java @@ -86,10 +86,10 @@ public class ItemStackListOredicted implements IItemStackList { if (stacks != null && !stacks.isEmpty()) { int i = 0; ItemStack returnStack = stacks.get(i++); - while (returnStack.getCount() == 0 && i < stacks.size()) { + while (returnStack.isEmpty() && i < stacks.size()) { returnStack = stacks.get(i++); } - if (returnStack.getCount() != 0) { + if (!returnStack.isEmpty()) { return returnStack; } } @@ -102,17 +102,21 @@ public class ItemStackListOredicted implements IItemStackList { @Nullable @Override public ItemStack get(int hash) { + if (underlyingList.needsCleanup) { + clean(); + } return underlyingList.get(hash); } @Override public void clear() { + stacks.clear(); underlyingList.clear(); } private void localClean() { List> toRemove = stacks.entries().stream() - .filter(entry -> entry.getValue().getCount() <= 0) + .filter(entry -> entry.getValue().isEmpty()) .collect(Collectors.toList()); toRemove.forEach(entry -> stacks.remove(entry.getKey(), entry.getValue()));