Lines Matching refs:client
59 cache_dump(const pkgconf_client_t *client) in cache_dump() argument
63 PKGCONF_TRACE(client, "dumping package cache contents"); in cache_dump()
65 for (i = 0; i < client->cache_count; i++) in cache_dump()
67 const pkgconf_pkg_t *pkg = client->cache_table[i]; in cache_dump()
69 PKGCONF_TRACE(client, SIZE_FMT_SPECIFIER": %p(%s)", in cache_dump()
89 pkgconf_cache_lookup(pkgconf_client_t *client, const char *id) in pkgconf_cache_lookup() argument
91 if (client->cache_table == NULL) in pkgconf_cache_lookup()
96 pkg = bsearch(id, client->cache_table, in pkgconf_cache_lookup()
97 client->cache_count, sizeof (void *), in pkgconf_cache_lookup()
102 PKGCONF_TRACE(client, "found: %s @%p", id, *pkg); in pkgconf_cache_lookup()
103 return pkgconf_pkg_ref(client, *pkg); in pkgconf_cache_lookup()
106 PKGCONF_TRACE(client, "miss: %s", id); in pkgconf_cache_lookup()
123 pkgconf_cache_add(pkgconf_client_t *client, pkgconf_pkg_t *pkg) in pkgconf_cache_add() argument
128 pkgconf_pkg_ref(client, pkg); in pkgconf_cache_add()
130 PKGCONF_TRACE(client, "added @%p to cache", pkg); in pkgconf_cache_add()
135 ++client->cache_count; in pkgconf_cache_add()
136 client->cache_table = pkgconf_reallocarray(client->cache_table, in pkgconf_cache_add()
137 client->cache_count, sizeof (void *)); in pkgconf_cache_add()
138 client->cache_table[client->cache_count - 1] = pkg; in pkgconf_cache_add()
140 qsort(client->cache_table, client->cache_count, in pkgconf_cache_add()
156 pkgconf_cache_remove(pkgconf_client_t *client, pkgconf_pkg_t *pkg) in pkgconf_cache_remove() argument
158 if (client->cache_table == NULL) in pkgconf_cache_remove()
167 PKGCONF_TRACE(client, "removed @%p from cache", pkg); in pkgconf_cache_remove()
171 slot = bsearch(pkg->id, client->cache_table, in pkgconf_cache_remove()
172 client->cache_count, sizeof (void *), in pkgconf_cache_remove()
179 pkgconf_pkg_unref(client, *slot); in pkgconf_cache_remove()
182 qsort(client->cache_table, client->cache_count, in pkgconf_cache_remove()
185 if (client->cache_table[client->cache_count - 1] != NULL) in pkgconf_cache_remove()
187 PKGCONF_TRACE(client, "end of cache table refers to %p, not NULL", in pkgconf_cache_remove()
188 client->cache_table[client->cache_count - 1]); in pkgconf_cache_remove()
189 cache_dump(client); in pkgconf_cache_remove()
193 client->cache_count--; in pkgconf_cache_remove()
194 if (client->cache_count > 0) in pkgconf_cache_remove()
196 client->cache_table = pkgconf_reallocarray(client->cache_table, in pkgconf_cache_remove()
197 client->cache_count, sizeof(void *)); in pkgconf_cache_remove()
201 free(client->cache_table); in pkgconf_cache_remove()
202 client->cache_table = NULL; in pkgconf_cache_remove()
218 pkgconf_cache_free(pkgconf_client_t *client) in pkgconf_cache_free() argument
220 if (client->cache_table == NULL) in pkgconf_cache_free()
223 while (client->cache_count > 0) in pkgconf_cache_free()
224 pkgconf_cache_remove(client, client->cache_table[0]); in pkgconf_cache_free()
226 free(client->cache_table); in pkgconf_cache_free()
227 client->cache_table = NULL; in pkgconf_cache_free()
228 client->cache_count = 0; in pkgconf_cache_free()
230 PKGCONF_TRACE(client, "cleared package cache"); in pkgconf_cache_free()