static inline Hashtable
allochashtable(Hashval mask, size_t size)
{
- if (mask == 0 && ((size_t)mask + 1) == 0)
+ if (mask == 0 || ((size_t)mask + 1) == 0)
solv_oom((size_t)mask, size * sizeof(Id));
return (Hashtable)solv_calloc((size_t)mask + 1, size * sizeof(Id));
}
if (repo->lastidhash_idarraysize != repo->idarraysize || (Hashval)size * 2 > repo->lastidhash_mask || repo->lastmarker != marker)
{
repo->lastmarkerpos = 0;
- if ((Hashval)size * 2 > repo->lastidhash_mask)
+ if ((Hashval)size * 2 >= repo->lastidhash_mask)
{
repo->lastidhash_mask = mkmask(size < REPO_ADDID_DEP_HASHMIN ? REPO_ADDID_DEP_HASHMIN : size);
solv_free(repo->lastidhash);