if (repo->lastidhash_idarraysize != repo->idarraysize || (Hashval)size * 2 > repo->lastidhash_mask || repo->lastmarker != marker)
{
repo->lastmarkerpos = 0;
- if (size * 2 > (Hashval)repo->lastidhash_mask)
+ if ((Hashval)size * 2 > repo->lastidhash_mask)
{
repo->lastidhash_mask = mkmask(size < REPO_ADDID_DEP_HASHMIN ? REPO_ADDID_DEP_HASHMIN : size);
repo->lastidhash = solv_realloc2(repo->lastidhash, repo->lastidhash_mask + 1, sizeof(Id));
case RPM_RPMDBID:
if (repo->rpmdbid)
{
- kv.num = repo->rpmdbid[p - repo->start];
+ kv.num = (unsigned int)repo->rpmdbid[p - repo->start];
kv.num2 = 0;
repo_matchvalue(md, s, 0, repo_solvablekeys + (RPM_RPMDBID - SOLVABLE_NAME), &kv);
}
if (keyname == RPM_RPMDBID)
{
if (repo->rpmdbid && entry >= repo->start && entry < repo->end)
- return repo->rpmdbid[entry - repo->start];
+ return (unsigned int)repo->rpmdbid[entry - repo->start];
return notfound;
}
}
repo_lookup_type(Repo *repo, Id entry, Id keyname)
{
Id type;
- Repodata *data = repo_lookup_repodata_opt(repo, entry, keyname);
+ Repodata *data;
+ if (keyname >= SOLVABLE_NAME && keyname <= RPM_RPMDBID)
+ return repo_solvablekeys[keyname - SOLVABLE_NAME].type;
+ data = repo_lookup_repodata_opt(repo, entry, keyname);
if (data && (type = repodata_lookup_type(data, entry, keyname)) != 0 && type != REPOKEY_TYPE_DELETED)
return type;
return 0;
{
if (!repo->rpmdbid)
repo->rpmdbid = repo_sidedata_create(repo, sizeof(Id));
- repo->rpmdbid[p - repo->start] = num;
+ repo->rpmdbid[p - repo->start] = (Id)num;
return;
}
}