librazor/iterator.c
changeset 301 4124c37fd953
parent 278 97c12ddedfb3
child 302 9b71b537d175
     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);