1.1 --- a/librazor/iterator.c Mon Jun 23 21:20:16 2008 -0400
1.2 +++ b/librazor/iterator.c Sun Jun 29 17:32:19 2008 +0100
1.3 @@ -20,6 +20,8 @@
1.4 #define _GNU_SOURCE
1.5
1.6 #include <string.h>
1.7 +#include <assert.h>
1.8 +
1.9 #include "razor-internal.h"
1.10 #include "razor.h"
1.11
1.12 @@ -48,6 +50,8 @@
1.13 {
1.14 struct razor_package_iterator *pi;
1.15
1.16 + assert (set != NULL);
1.17 +
1.18 pi = zalloc(sizeof *pi);
1.19 pi->set = set;
1.20 pi->end = set->packages.data + set->packages.size;
1.21 @@ -61,6 +65,10 @@
1.22 struct razor_set *set,
1.23 struct razor_property *property)
1.24 {
1.25 + assert (pi != NULL);
1.26 + assert (set != NULL);
1.27 + assert (property != NULL);
1.28 +
1.29 memset(pi, 0, sizeof *pi);
1.30 pi->set = set;
1.31 pi->index = list_first(&property->packages, &set->package_pool);
1.32 @@ -72,6 +80,9 @@
1.33 {
1.34 struct list *index;
1.35
1.36 + assert (set != NULL);
1.37 + assert (property != NULL);
1.38 +
1.39 index = list_first(&property->packages, &set->package_pool);
1.40 return razor_package_iterator_create_with_index(set, index);
1.41 }
1.42 @@ -83,6 +94,9 @@
1.43 struct razor_entry *entry;
1.44 struct list *index;
1.45
1.46 + assert (set != NULL);
1.47 + assert (filename != NULL);
1.48 +
1.49 entry = razor_set_find_entry(set, set->files.data, filename);
1.50 if (entry == NULL)
1.51 return razor_package_iterator_create_empty(set);
1.52 @@ -102,6 +116,8 @@
1.53 int valid;
1.54 struct razor_package *p, *packages;
1.55
1.56 + assert (pi != NULL);
1.57 +
1.58 if (pi->package) {
1.59 p = pi->package++;
1.60 valid = p < pi->end;
1.61 @@ -129,6 +145,8 @@
1.62 RAZOR_EXPORT void
1.63 razor_package_iterator_destroy(struct razor_package_iterator *pi)
1.64 {
1.65 + assert (pi != NULL);
1.66 +
1.67 if (pi->free_index)
1.68 free(pi->index);
1.69
1.70 @@ -141,6 +159,9 @@
1.71 {
1.72 struct razor_property_iterator *pi;
1.73
1.74 + assert (set != NULL);
1.75 + assert (package != NULL);
1.76 +
1.77 pi = zalloc(sizeof *pi);
1.78 pi->set = set;
1.79
1.80 @@ -166,6 +187,8 @@
1.81 int valid;
1.82 struct razor_property *p, *properties;
1.83
1.84 + assert (pi != NULL);
1.85 +
1.86 if (pi->property) {
1.87 p = pi->property++;
1.88 valid = p < pi->end;
1.89 @@ -208,6 +231,8 @@
1.90 struct razor_package_query *pq;
1.91 int count;
1.92
1.93 + assert (set != NULL);
1.94 +
1.95 pq = zalloc(sizeof *pq);
1.96 pq->set = set;
1.97 count = set->packages.size / sizeof(struct razor_package);
1.98 @@ -222,6 +247,9 @@
1.99 {
1.100 struct razor_package *packages;
1.101
1.102 + assert (pq != NULL);
1.103 + assert (p != NULL);
1.104 +
1.105 packages = pq->set->packages.data;
1.106 pq->count += pq->vector[p - packages] ^ 1;
1.107 pq->vector[p - packages] = 1;
1.108 @@ -234,6 +262,9 @@
1.109 struct razor_package *packages, *p;
1.110 const char *name, *version, *arch;
1.111
1.112 + assert (pq != NULL);
1.113 + assert (pi != NULL);
1.114 +
1.115 packages = pq->set->packages.data;
1.116 while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
1.117 pq->count += pq->vector[p - packages] ^ 1;
1.118 @@ -249,6 +280,8 @@
1.119 struct list *index;
1.120 int i, j;
1.121
1.122 + assert (pq != NULL);
1.123 +
1.124 set = pq->set;
1.125 if (pq->count > 0)
1.126 index = zalloc(pq->count * sizeof *index);