razor.c
changeset 97 41bf485e6154
parent 96 9feff82f2d01
child 98 ec850cbd6935
     1.1 --- a/razor.c	Thu Jan 10 22:44:41 2008 -0500
     1.2 +++ b/razor.c	Thu Jan 10 22:50:51 2008 -0500
     1.3 @@ -975,26 +975,21 @@
     1.4  	free(pi);
     1.5  }
     1.6  
     1.7 -struct razor_set *bsearch_set;
     1.8 -
     1.9 -static int
    1.10 -compare_package_name(const void *key, const void *data)
    1.11 -{
    1.12 -	const struct razor_package *p = data;
    1.13 -	char *pool;
    1.14 -
    1.15 -	pool = bsearch_set->string_pool.data;
    1.16 -
    1.17 -	return strcmp(key, &pool[p->name]);
    1.18 -}
    1.19 -
    1.20  struct razor_package *
    1.21  razor_set_get_package(struct razor_set *set, const char *package)
    1.22  {
    1.23 -	bsearch_set = set;
    1.24 -	return bsearch(package, set->packages.data,
    1.25 -		       set->packages.size / sizeof(struct razor_package),
    1.26 -		       sizeof(struct razor_package), compare_package_name);
    1.27 +	struct razor_package_iterator *pi;
    1.28 +	struct razor_package *p;
    1.29 +	const char *name, *version;
    1.30 +
    1.31 +	pi = razor_package_iterator_create(set);
    1.32 +	while (razor_package_iterator_next(pi, &p, &name, &version)) {
    1.33 +		if (strcmp(package, name) == 0)
    1.34 +			break;
    1.35 +	}
    1.36 +	razor_package_iterator_destroy(pi);
    1.37 +
    1.38 +	return p;
    1.39  }
    1.40  
    1.41  struct razor_property_iterator {