X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Futil%2FHash.java;h=4ee02c8de45b09c1a254701d5e78834c29195200;hp=4b3887065202aba7e865fc2b54055303e64bc249;hb=859663e2a35e4e1f61743073de796dde521cb1b7;hpb=68d12d9beaf6f2baded843c1797c4bbad4503352 diff --git a/src/org/ibex/util/Hash.java b/src/org/ibex/util/Hash.java index 4b38870..4ee02c8 100644 --- a/src/org/ibex/util/Hash.java +++ b/src/org/ibex/util/Hash.java @@ -151,21 +151,22 @@ public class Hash { } private class HashEnum implements java.util.Enumeration { - private int iterator = 0; - private int found = 0; + private int iterator; + + public HashEnum() { findNext(); } + + private void findNext() { + while(iterator < keys1.length && (keys1[iterator] == null || keys1[iterator] == placeholder)) iterator++; + } public boolean hasMoreElements() { - return found < usedslots; + return iterator < keys1.length; } public Object nextElement() { - if (!hasMoreElements()) throw new java.util.NoSuchElementException(); - - Object o = null; - while (o == null) o = keys1[iterator++]; - if (o == null) throw new IllegalStateException("Didn't find an element, when I should have."); - found++; - + if (iterator == keys1.length) throw new NoSuchElementException(); + Object o = keys1[iterator]; + findNext(); return o; } }