projects
/
oweals
/
gnunet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
365372a
)
heap bugfix
author
Nathan S. Evans
<evans@in.tum.de>
Thu, 3 Dec 2009 01:44:18 +0000
(
01:44
+0000)
committer
Nathan S. Evans
<evans@in.tum.de>
Thu, 3 Dec 2009 01:44:18 +0000
(
01:44
+0000)
src/util/container_heap.c
patch
|
blob
|
history
diff --git
a/src/util/container_heap.c
b/src/util/container_heap.c
index cde67825736f9370b619eaa1b5d18aebc8886ff2..9c6005bebc8010750f37014594f1beb1f843dd7f 100644
(file)
--- a/
src/util/container_heap.c
+++ b/
src/util/container_heap.c
@@
-326,6
+326,8
@@
GNUNET_CONTAINER_heap_remove_node (struct GNUNET_CONTAINER_Heap *root,
ret = del_node->element;
last = getPos (root, root->size);
+ root->size--;
+
old_cost = del_node->cost;
del_node->element = last->element;
del_node->cost = last->cost;
@@
-339,8
+341,14
@@
GNUNET_CONTAINER_heap_remove_node (struct GNUNET_CONTAINER_Heap *root,
{
root->traversal_pos = root->root;
}
+
+ if (last == del_node)
+ {
+ GNUNET_free (last);
+ return ret;
+ }
GNUNET_free (last);
- root->size--;
+
if (del_node->cost > old_cost)
{