{
case REL_AND:
case REL_WITH:
- pp = pool->whatprovidesdata + pool_whatprovides(pool, name);
- pp2 = pool->whatprovidesdata + pool_whatprovides(pool, evr);
+ pp = pool_whatprovides_ptr(pool, name);
+ pp2 = pool_whatprovides_ptr(pool, evr);
while ((p = *pp++) != 0)
{
for (pp3 = pp2; *pp3;)
}
break;
case REL_OR:
- pp = pool->whatprovidesdata + pool_whatprovides(pool, name);
+ pp = pool_whatprovides_ptr(pool, name);
while ((p = *pp++) != 0)
queue_push(&plist, p);
- pp = pool->whatprovidesdata + pool_whatprovides(pool, evr);
+ pp = pool_whatprovides_ptr(pool, evr);
while ((p = *pp++) != 0)
queue_pushunique(&plist, p);
break;
#endif
if (flags && flags < 8)
{
- pp = pool->whatprovidesdata + pool_whatprovides(pool, name);
+ pp = pool_whatprovides_ptr(pool, name);
while (ISRELDEP(name))
{
rd = GETRELDEP(pool, name);
conp = s->repo->idarraydata + s->conflicts;
while ((con = *conp++) != 0)
{
- dp = pool->whatprovidesdata + pool_whatprovides(pool, con);
+ dp = pool_whatprovides_ptr(pool, con);
for (; *dp; dp++)
map[p] |= 2; /* XXX: self conflict ? */
}
return pool_addrelproviders(pool, d);
}
+static inline Id *pool_whatprovides_ptr(Pool *pool, Id d)
+{
+ Id off = pool_whatprovides(pool, d);
+ return pool->whatprovidesdata + off;
+}
+
extern void pool_setdebuglevel(Pool *pool, int level);
static inline void pool_setdebugcallback(Pool *pool, void (*debugcallback)(struct _Pool *, void *data, int type, const char *str), void *debugcallbackdata)
conp = s2->repo->idarraydata + s2->conflicts;
while ((con = *conp++) != 0)
{
- dp = pool->whatprovidesdata + pool_whatprovides(pool, con);
+ dp = pool_whatprovides_ptr(pool, con);
for (; *dp; dp++)
if (*dp == p)
return 0;
conp = s->repo->idarraydata + s->conflicts;
while ((con = *conp++) != 0)
{
- dp = pool->whatprovidesdata + pool_whatprovides(pool, con);
+ dp = pool_whatprovides_ptr(pool, con);
for (; *dp; dp++)
MAPSET(conflictsmap, *dp);
}
continue;
/* find list of solvables providing 'req' */
- dp = pool->whatprovidesdata + pool_whatprovides(pool, req);
+ dp = pool_whatprovides_ptr(pool, req);
if (*dp == SYSTEMSOLVABLE) /* always installed */
continue;
{
if (req == SOLVABLE_PREREQMARKER)
continue;
- dp = pool->whatprovidesdata + pool_whatprovides(pool, req);
+ dp = pool_whatprovides_ptr(pool, req);
if (*dp == 0)
break;
}
{
if (req == SOLVABLE_PREREQMARKER)
continue;
- dp = pool->whatprovidesdata + pool_whatprovides(pool, req);
+ dp = pool_whatprovides_ptr(pool, req);
if (d == 0)
{
if (*dp == r->w2 && dp[1] == 0)