diff -r 9feff82f2d01 -r 41bf485e6154 razor.c --- a/razor.c Thu Jan 10 22:44:41 2008 -0500 +++ b/razor.c Thu Jan 10 22:50:51 2008 -0500 @@ -975,26 +975,21 @@ free(pi); } -struct razor_set *bsearch_set; - -static int -compare_package_name(const void *key, const void *data) -{ - const struct razor_package *p = data; - char *pool; - - pool = bsearch_set->string_pool.data; - - return strcmp(key, &pool[p->name]); -} - struct razor_package * razor_set_get_package(struct razor_set *set, const char *package) { - bsearch_set = set; - return bsearch(package, set->packages.data, - set->packages.size / sizeof(struct razor_package), - sizeof(struct razor_package), compare_package_name); + struct razor_package_iterator *pi; + struct razor_package *p; + const char *name, *version; + + pi = razor_package_iterator_create(set); + while (razor_package_iterator_next(pi, &p, &name, &version)) { + if (strcmp(package, name) == 0) + break; + } + razor_package_iterator_destroy(pi); + + return p; } struct razor_property_iterator {