build: missing pkg.m4
[project/opkg-lede.git] / libopkg / void_list.c
index 676e3b1497d3b478dc4a8681f1dd4cdbdbfcaca5..4c9d8971f402ef52b8f3e48ba19f93488ed6ba26 100644 (file)
    General Public License for more details.
 */
 
-#include "includes.h"
-#include <errno.h>
-
 #include "void_list.h"
+#include "libbb/libbb.h"
 
-int void_list_elt_init(void_list_elt_t *elt, void *data)
+void void_list_elt_init(void_list_elt_t *elt, void *data)
 {
     INIT_LIST_HEAD(&elt->node);
     elt->data = data;
-
-    return 0;
 }
 
-void_list_elt_t * void_list_elt_new (void *data) {
+static void_list_elt_t * void_list_elt_new (void *data) {
     void_list_elt_t *elt;
-    /* freed in void_list_deinit */
-    elt = calloc(1, sizeof(void_list_elt_t));
-    if (elt == NULL) {
-       fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-       return NULL;
-    }
+    /* freed in void_list_elt_deinit */
+    elt = xcalloc(1, sizeof(void_list_elt_t));
     void_list_elt_init(elt, data);
     return elt;
 }
@@ -44,12 +36,12 @@ void void_list_elt_deinit(void_list_elt_t *elt)
 {
     list_del_init(&elt->node);
     void_list_elt_init(elt, NULL);
+    free(elt);
 }
 
-int void_list_init(void_list_t *list)
+void void_list_init(void_list_t *list)
 {
     INIT_LIST_HEAD(&list->head);
-    return 0;
 }
 
 void void_list_deinit(void_list_t *list)
@@ -59,35 +51,27 @@ void void_list_deinit(void_list_t *list)
     while (!void_list_empty(list)) {
        elt = void_list_pop(list);
        void_list_elt_deinit(elt);
-       /* malloced in void_list_append */
-       free(elt);
     }
     INIT_LIST_HEAD(&list->head);
 }
 
-int void_list_append(void_list_t *list, void *data)
+void void_list_append(void_list_t *list, void *data)
 {
     void_list_elt_t *elt = void_list_elt_new(data);
-     
     list_add_tail(&elt->node, &list->head);
-
-    return 0;
 }
 
-int void_list_push(void_list_t *list, void *data)
+void void_list_push(void_list_t *list, void *data)
 {
     void_list_elt_t *elt = void_list_elt_new(data);
-
     list_add(&elt->node, &list->head);
-
-    return 0;
 }
 
 void_list_elt_t *void_list_pop(void_list_t *list)
 {
     struct list_head *node;
 
-    if (void_list_empty(list)) 
+    if (void_list_empty(list))
         return NULL;
     node = list->head.next;
     list_del_init(node);
@@ -110,13 +94,12 @@ void *void_list_remove(void_list_t *list, void_list_elt_t **iter)
             break;
     }
     if ( pos != old_elt) {
-        fprintf(stderr, "%s: ERROR: element not found in list\n", __FUNCTION__);
+        opkg_msg(ERROR, "Internal error: element not found in list.\n");
         return NULL;
     }
 
     *iter = list_entry(pos->node.prev, void_list_elt_t, node);
     void_list_elt_deinit(pos);
-    free(pos);
 
     return old_data;
 }