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 {