aboutsummaryrefslogtreecommitdiff
path: root/libiberty/fibheap.c
diff options
context:
space:
mode:
authorMatt Kraai <kraai@alumni.carnegiemellon.edu>2001-08-22 21:02:06 +0000
committerMatt Kraai <kraai@gcc.gnu.org>2001-08-22 21:02:06 +0000
commitffb9435bfeac322c70a2c1e35f456e1bca44673e (patch)
tree2c046d630a67dd6c1b71bda350b3ae98b6aa109a /libiberty/fibheap.c
parent29401c300b273963c88bb08bb6282acdf11e75c2 (diff)
downloadgcc-ffb9435bfeac322c70a2c1e35f456e1bca44673e.zip
gcc-ffb9435bfeac322c70a2c1e35f456e1bca44673e.tar.gz
gcc-ffb9435bfeac322c70a2c1e35f456e1bca44673e.tar.bz2
fibheap.c (fibheap_init, [...]): Remove.
* fibheap.c (fibheap_init, fibnode_init): Remove. (fibheap_new, fibnode_new): Use xcalloc to allocate and initialize memory. (fibheap_insert): Remove check for node allocation failure. From-SVN: r45113
Diffstat (limited to 'libiberty/fibheap.c')
-rw-r--r--libiberty/fibheap.c53
1 files changed, 9 insertions, 44 deletions
diff --git a/libiberty/fibheap.c b/libiberty/fibheap.c
index 7431e11..0ba9b8d 100644
--- a/libiberty/fibheap.c
+++ b/libiberty/fibheap.c
@@ -37,7 +37,6 @@ Boston, MA 02111-1307, USA. */
#define FIBHEAPKEY_MIN LONG_MIN
-static void fibheap_init PARAMS ((fibheap_t));
static void fibheap_ins_root PARAMS ((fibheap_t, fibnode_t));
static void fibheap_rem_root PARAMS ((fibheap_t, fibnode_t));
static void fibheap_consolidate PARAMS ((fibheap_t));
@@ -49,62 +48,29 @@ static int fibheap_compare PARAMS ((fibheap_t, fibnode_t, fibnode_t));
static int fibheap_comp_data PARAMS ((fibheap_t, fibheapkey_t, void *,
fibnode_t));
static fibnode_t fibnode_new PARAMS ((void));
-static void fibnode_init PARAMS ((fibnode_t));
static void fibnode_insert_after PARAMS ((fibnode_t, fibnode_t));
#define fibnode_insert_before(a, b) fibnode_insert_after (a->left, b)
static fibnode_t fibnode_remove PARAMS ((fibnode_t));
-/* Initialize the passed in fibonacci heap. */
-static inline void
-fibheap_init (heap)
- fibheap_t heap;
-{
- heap->nodes = 0;
- heap->min = NULL;
- heap->root = NULL;
-}
-
/* Create a new fibonacci heap. */
fibheap_t
fibheap_new ()
{
- fibheap_t result;
-
- if ((result = xmalloc (sizeof (*result))) == NULL)
- return NULL;
-
- fibheap_init (result);
-
- return result;
-}
-
-/* Initialize the passed in fibonacci heap node. */
-static inline void
-fibnode_init (node)
- fibnode_t node;
-{
- node->degree = 0;
- node->mark = 0;
- node->parent = NULL;
- node->child = NULL;
- node->left = node;
- node->right = node;
- node->data = NULL;
+ return (fibheap_t) xcalloc (1, sizeof (struct fibheap));
}
/* Create a new fibonacci heap node. */
-static inline fibnode_t
+static fibnode_t
fibnode_new ()
{
- fibnode_t e;
-
- if ((e = xmalloc (sizeof *e)) == NULL)
- return NULL;
+ fibnode_t node;
- fibnode_init (e);
+ node = xcalloc (1, sizeof *node);
+ node->left = node;
+ node->right = node;
- return e;
+ return node;
}
static inline int
@@ -144,9 +110,8 @@ fibheap_insert (heap, key, data)
{
fibnode_t node;
- /* Create the new node, if we fail, return NULL. */
- if ((node = fibnode_new ()) == NULL)
- return NULL;
+ /* Create the new node. */
+ node = fibnode_new ();
/* Set the node's data. */
node->data = data;