X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fgl_rbtree_oset.c;h=f6b94ecb3528a0c90069f3a51df23b14925dbcdc;hb=55898ee1c7c12e63772c65e772577f10bb7adb31;hp=6247972a3baf55043b0504fc5d0a53f367d44467;hpb=441aa3044f43e5572f58c354f01e6bc070acd5c7;p=gnulib.git diff --git a/lib/gl_rbtree_oset.c b/lib/gl_rbtree_oset.c index 6247972a3..f6b94ecb3 100644 --- a/lib/gl_rbtree_oset.c +++ b/lib/gl_rbtree_oset.c @@ -1,5 +1,5 @@ /* Ordered set data type implemented by a binary tree. - Copyright (C) 2006-2007 Free Software Foundation, Inc. + Copyright (C) 2006-2007, 2009-2010 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify @@ -22,8 +22,6 @@ #include -#include "xalloc.h" - /* A red-black tree is a binary tree where every node is colored black or red such that 1. The root is black. @@ -538,10 +536,14 @@ rebalance_after_remove (gl_oset_t set, gl_oset_node_t child, gl_oset_node_t pare } static gl_oset_node_t -gl_tree_add_first (gl_oset_t set, const void *elt) +gl_tree_nx_add_first (gl_oset_t set, const void *elt) { /* Create new node. */ - gl_oset_node_t new_node = XMALLOC (struct gl_oset_node_impl); + gl_oset_node_t new_node = + (struct gl_oset_node_impl *) malloc (sizeof (struct gl_oset_node_impl)); + + if (new_node == NULL) + return NULL; new_node->left = NULL; new_node->right = NULL; @@ -573,10 +575,14 @@ gl_tree_add_first (gl_oset_t set, const void *elt) } static gl_oset_node_t -gl_tree_add_before (gl_oset_t set, gl_oset_node_t node, const void *elt) +gl_tree_nx_add_before (gl_oset_t set, gl_oset_node_t node, const void *elt) { /* Create new node. */ - gl_oset_node_t new_node = XMALLOC (struct gl_oset_node_impl); + gl_oset_node_t new_node = + (struct gl_oset_node_impl *) malloc (sizeof (struct gl_oset_node_impl)); + + if (new_node == NULL) + return NULL; new_node->left = NULL; new_node->right = NULL; @@ -601,10 +607,14 @@ gl_tree_add_before (gl_oset_t set, gl_oset_node_t node, const void *elt) } static gl_oset_node_t -gl_tree_add_after (gl_oset_t set, gl_oset_node_t node, const void *elt) +gl_tree_nx_add_after (gl_oset_t set, gl_oset_node_t node, const void *elt) { /* Create new node. */ - gl_oset_node_t new_node = XMALLOC (struct gl_oset_node_impl); + gl_oset_node_t new_node = + (struct gl_oset_node_impl *) malloc (sizeof (struct gl_oset_node_impl)); + + if (new_node == NULL) + return NULL; new_node->left = NULL; new_node->right = NULL; @@ -791,11 +801,11 @@ gl_rbtree_oset_check_invariants (gl_oset_t set) const struct gl_oset_implementation gl_rbtree_oset_implementation = { - gl_tree_create_empty, + gl_tree_nx_create_empty, gl_tree_size, gl_tree_search, gl_tree_search_atleast, - gl_tree_add, + gl_tree_nx_add, gl_tree_remove, gl_tree_oset_free, gl_tree_iterator,