pool_lookup_checksum;
pool_lookup_deltalocation;
pool_lookup_id;
+ pool_lookup_idarray;
pool_lookup_num;
pool_lookup_str;
pool_lookup_void;
return solvable_lookup_checksum(pool->solvables + entry, keyname, typep);
}
+int
+pool_lookup_idarray(Pool *pool, Id entry, Id keyname, Queue *q)
+{
+ if (entry == SOLVID_POS && pool->pos.repo)
+ return repo_lookup_idarray(pool->pos.repo, pool->pos.repodataid ? entry : pool->pos.solvid, keyname, q);
+ if (entry <= 0)
+ return 0;
+ return solvable_lookup_idarray(pool->solvables + entry, keyname, q);
+}
+
const char *
pool_lookup_deltalocation(Pool *pool, Id entry, unsigned int *medianrp)
{
unsigned long long pool_lookup_num(Pool *pool, Id entry, Id keyname, unsigned long long notfound);
int pool_lookup_void(Pool *pool, Id entry, Id keyname);
const unsigned char *pool_lookup_bin_checksum(Pool *pool, Id entry, Id keyname, Id *typep);
+int pool_lookup_idarray(Pool *pool, Id entry, Id keyname, Queue *q);
const char *pool_lookup_checksum(Pool *pool, Id entry, Id keyname, Id *typep);
const char *pool_lookup_deltalocation(Pool *pool, Id entry, unsigned int *medianrp);
int
repo_lookup_idarray(Repo *repo, Id entry, Id keyname, Queue *q)
{
+ Pool *pool = repo->pool;
Repodata *data;
int i;
if (entry >= 0)
return lookup_idarray_solvable(repo, repo->pool->solvables[entry].enhances, q);
}
}
+ else if (entry == SOLVID_POS && pool->pos.repo == repo && pool->pos.repodataid)
+ {
+ Repodata *data = pool->pos.repo->repodata + pool->pos.repodataid;
+ if (repodata_lookup_idarray(data, entry, keyname, q))
+ {
+ if (data->localpool)
+ {
+ for (i = 0; i < q->count; i++)
+ q->elements[i] = repodata_globalize_id(data, q->elements[i], 1);
+ }
+ return 1;
+ }
+ }
FOR_REPODATAS(repo, i, data)
{
if (entry != SOLVID_META && (entry < data->start || entry >= data->end))