X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleLookupTable.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleLookupTable.java index 01c61a6..a0819d4 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleLookupTable.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleLookupTable.java @@ -97,21 +97,23 @@ public Object put(Object key, Object value) { return value; } -public void removeKey(Object key) { +public Object removeKey(Object key) { int length = keyTable.length; int index = (key.hashCode() & 0x7FFFFFFF) % length; Object currentKey; while ((currentKey = keyTable[index]) != null) { if (currentKey.equals(key)) { elementSize--; + Object oldValue = valueTable[index]; keyTable[index] = null; valueTable[index] = null; if (keyTable[index + 1 == length ? 0 : index + 1] != null) rehash(); // only needed if a possible collision existed - return; + return oldValue; } if (++index == length) index = 0; } + return null; } public void removeValue(Object valueToRemove) {