merge from gcc

This commit is contained in:
DJ Delorie
2009-05-29 03:01:15 +00:00
parent 4a657b0d92
commit 0dc69033a0
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-05-29 Michael Matz <matz@suse.de>
* fibheap.c (fibheap_replace_key_data): Make sure we don't early
out when forcing the minimum.
(fibheap_delete_node): Assert that we managed to force the minimum.
2009-05-25 Tristan Gingold <gingold@adacore.com>
* config.h-vms: Rewritten. Define configure macros.

View File

@ -214,7 +214,10 @@ fibheap_replace_key_data (fibheap_t heap, fibnode_t node,
node->key = key;
y = node->parent;
if (okey == key)
/* Short-circuit if the key is the same, as we then don't have to
do anything. Except if we're trying to force the new node to
be the new minimum for delete. */
if (okey == key && okey != FIBHEAPKEY_MIN)
return odata;
/* These two compares are specifically <= 0 to make sure that in the case
@ -256,6 +259,11 @@ fibheap_delete_node (fibheap_t heap, fibnode_t node)
/* To perform delete, we just make it the min key, and extract. */
fibheap_replace_key (heap, node, FIBHEAPKEY_MIN);
if (node != heap->min)
{
fprintf (stderr, "Can't force minimum on fibheap.\n");
abort ();
}
fibheap_extract_min (heap);
return ret;