summaryrefslogtreecommitdiff
path: root/gee/hashset.vala
diff options
context:
space:
mode:
Diffstat (limited to 'gee/hashset.vala')
-rw-r--r--gee/hashset.vala7
1 files changed, 6 insertions, 1 deletions
diff --git a/gee/hashset.vala b/gee/hashset.vala
index f042e7622..a5a98050c 100644
--- a/gee/hashset.vala
+++ b/gee/hashset.vala
@@ -99,8 +99,13 @@ public class Gee.HashSet<G> : CollectionObject, Iterable<G>, Collection<G>, Set<
public bool remove (G key) {
Node<G>** node = lookup_node (key);
if (*node != null) {
+ Node<G> next = (owned) (*node)->next;
+
(*node)->key = null;
- *node = (*node)->next;
+ delete *node;
+
+ *node = (owned) next;
+
_nnodes--;
resize ();
_stamp++;