ppa stats graph
[ppastats.git] / src / list.c
index ceb4efa..76a37e6 100644 (file)
@@ -44,14 +44,36 @@ void **list_add(void **list, void *new_item)
 
        new_list = malloc(sizeof(void *)*(n+2));
 
-       if (n)
+       if (n) {
                memcpy(new_list, list, sizeof(void *)*n);
+               free(list);
+       }
 
        new_list[n] = new_item;
        new_list[n+1] = NULL;
 
-       free(list);
-
        return new_list;
 }
 
+void **list_add_list(void **list1, void **list2)
+{
+       int n1, n2, n;
+       void **list;
+
+       n1 = list_length(list1);
+       n2 = list_length(list2);
+
+       n = n1 + n2 + 1;
+
+       list = malloc(sizeof(void *)*(n+1));
+
+       memcpy(list, list1, n1*sizeof(void *));
+       memcpy(list+n1, list2, n2*sizeof(void *));
+
+       list[n1+n2] = NULL;
+
+       free(list1);
+
+       return list;
+}
+