summaryrefslogtreecommitdiff
path: root/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java
diff options
context:
space:
mode:
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java')
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java
index 2fc54afd..912a501b 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/database/ids/integer/TroveHashSetModifiableDBIDs.java
@@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.datastructures.iterator.Iter;
* Implementation using GNU Trove Int Hash Sets.
*
* @author Erich Schubert
+ * @since 0.4.0
*
* @apiviz.has Itr
*/
@@ -158,7 +159,7 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID
}
@Override
- public void pop(DBIDVar outvar) {
+ public DBIDVar pop(DBIDVar outvar) {
if(store.size() == 0) {
throw new ArrayIndexOutOfBoundsException("Cannot pop() from an empty array.");
}
@@ -167,9 +168,8 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID
while(i-- > 0 && (states[i] != TPrimitiveHash.FULL)) {
; // Not occupied. Continue
}
- if(i < 0) {
- outvar.unset();
- return;
+ if(i < 0) { // Should never happen because size > 0
+ throw new ArrayIndexOutOfBoundsException("Cannot pop() from an empty array.");
}
final int val = store._set[i];
if(outvar instanceof IntegerDBIDVar) {
@@ -180,6 +180,7 @@ class TroveHashSetModifiableDBIDs implements HashSetModifiableDBIDs, IntegerDBID
}
// Unfortunately, not visible: store.removeAt(i);
store.remove(val);
+ return outvar;
}
/**