X-Git-Url: https://ruderich.org/simon/gitweb/?p=nsscash%2Fnsscash.git;a=blobdiff_plain;f=nss%2Fsearch.c;h=666d54c7bdec3785c2477ba8376c088f5be70e79;hp=256001f16e1d19ac4b03706a81dee8266859ffc6;hb=c42f577140459f548b1d7b085cd4dc2717e060c6;hpb=67fb8cb9a157931c94bb420f25c36d55c2876d02 diff --git a/nss/search.c b/nss/search.c index 256001f..666d54c 100644 --- a/nss/search.c +++ b/nss/search.c @@ -26,15 +26,15 @@ static int bsearch_callback(const void *x, const void *y) { const struct search_key *key = x; - uint64_t offset = *(const uint64_t *)y; + uint64_t offset = *(const uint64_t *)y; // from index const void *member = (const char *)key->data + offset + key->offset; - // Lookup by name + // Lookup by name (char *) if (key->name != NULL) { const char *name = member; return strcmp(key->name, name); - // Lookup by ID + // Lookup by ID (uint64_t) } else if (key->id != NULL) { const uint64_t *id = member; if (*key->id < *id) { @@ -50,6 +50,7 @@ static int bsearch_callback(const void *x, const void *y) { } } +// search performs a binary search on an index, described by key and index. uint64_t *search(const struct search_key *key, const void *index, uint64_t count) { return bsearch(key, index, count, sizeof(uint64_t), bsearch_callback); }