mirror of
https://github.com/bkthomps/Containers.git
synced 2025-12-05 15:15:49 +00:00
Fix invalid access
This commit is contained in:
@@ -361,20 +361,20 @@ bool unordered_multiset_remove_all(unordered_multiset me, void *const key)
|
|||||||
struct node *traverse = me->buckets[index];
|
struct node *traverse = me->buckets[index];
|
||||||
if (unordered_multiset_is_equal(me, traverse, hash, key)) {
|
if (unordered_multiset_is_equal(me, traverse, hash, key)) {
|
||||||
me->buckets[index] = traverse->next;
|
me->buckets[index] = traverse->next;
|
||||||
|
me->size -= traverse->count;
|
||||||
free(traverse->key);
|
free(traverse->key);
|
||||||
free(traverse);
|
free(traverse);
|
||||||
me->used--;
|
me->used--;
|
||||||
me->size -= traverse->count;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
while (traverse->next != NULL) {
|
while (traverse->next != NULL) {
|
||||||
if (unordered_multiset_is_equal(me, traverse->next, hash, key)) {
|
if (unordered_multiset_is_equal(me, traverse->next, hash, key)) {
|
||||||
struct node *const backup = traverse->next;
|
struct node *const backup = traverse->next;
|
||||||
traverse->next = traverse->next->next;
|
traverse->next = traverse->next->next;
|
||||||
|
me->size -= traverse->count;
|
||||||
free(backup->key);
|
free(backup->key);
|
||||||
free(backup);
|
free(backup);
|
||||||
me->used--;
|
me->used--;
|
||||||
me->size -= traverse->count;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
traverse = traverse->next;
|
traverse = traverse->next;
|
||||||
|
|||||||
Reference in New Issue
Block a user