Skip to content

Commit 276d550

Browse files
committed
Move pool_dep_fulfilled_in_map into pooldep.c
1 parent 1f157d5 commit 276d550

File tree

2 files changed

+69
-70
lines changed

2 files changed

+69
-70
lines changed

src/pool.c

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -754,74 +754,4 @@ int (*pool_get_custom_vendorcheck(Pool *pool))(Pool *, Solvable *, Solvable *)
754754
return pool->custom_vendorcheck;
755755
}
756756

757-
static int
758-
pool_dep_fulfilled_in_map_cplx(Pool *pool, const Map *map, Reldep *rd)
759-
{
760-
if (rd->flags == REL_COND)
761-
{
762-
if (ISRELDEP(rd->evr))
763-
{
764-
Reldep *rd2 = GETRELDEP(pool, rd->evr);
765-
if (rd2->flags == REL_ELSE)
766-
{
767-
if (pool_dep_fulfilled_in_map(pool, map, rd2->name))
768-
return pool_dep_fulfilled_in_map(pool, map, rd->name);
769-
return pool_dep_fulfilled_in_map(pool, map, rd2->evr);
770-
}
771-
}
772-
if (pool_dep_fulfilled_in_map(pool, map, rd->name))
773-
return 1;
774-
return !pool_dep_fulfilled_in_map(pool, map, rd->evr);
775-
}
776-
if (rd->flags == REL_UNLESS)
777-
{
778-
if (ISRELDEP(rd->evr))
779-
{
780-
Reldep *rd2 = GETRELDEP(pool, rd->evr);
781-
if (rd2->flags == REL_ELSE)
782-
{
783-
if (!pool_dep_fulfilled_in_map(pool, map, rd2->name))
784-
return pool_dep_fulfilled_in_map(pool, map, rd->name);
785-
return pool_dep_fulfilled_in_map(pool, map, rd2->evr);
786-
}
787-
}
788-
if (!pool_dep_fulfilled_in_map(pool, map, rd->name))
789-
return 0;
790-
return !pool_dep_fulfilled_in_map(pool, map, rd->evr);
791-
}
792-
if (rd->flags == REL_AND)
793-
{
794-
if (!pool_dep_fulfilled_in_map(pool, map, rd->name))
795-
return 0;
796-
return pool_dep_fulfilled_in_map(pool, map, rd->evr);
797-
}
798-
if (rd->flags == REL_OR)
799-
{
800-
if (pool_dep_fulfilled_in_map(pool, map, rd->name))
801-
return 1;
802-
return pool_dep_fulfilled_in_map(pool, map, rd->evr);
803-
}
804-
return 0;
805-
}
806-
807-
808-
int pool_dep_fulfilled_in_map(Pool *pool, const Map *map, Id dep)
809-
{
810-
Id p, pp;
811-
812-
if (ISRELDEP(dep)) {
813-
Reldep *rd = GETRELDEP(pool, dep);
814-
if (rd->flags == REL_COND || rd->flags == REL_UNLESS ||
815-
rd->flags == REL_AND || rd->flags == REL_OR)
816-
return pool_dep_fulfilled_in_map_cplx(pool, map, rd);
817-
if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
818-
return 0;
819-
}
820-
FOR_PROVIDES(p, pp, dep) {
821-
if (MAPTST(map, p))
822-
return 1;
823-
}
824-
return 0;
825-
}
826-
827757
/* EOF */

src/pooldep.c

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,4 +345,73 @@ pool_whatmatchessolvable(Pool *pool, Id keyname, Id solvid, Queue *q, int marker
345345
queue_free(&qq);
346346
}
347347

348+
static int
349+
pool_dep_fulfilled_in_map_cplx(Pool *pool, const Map *map, Reldep *rd)
350+
{
351+
if (rd->flags == REL_COND)
352+
{
353+
if (ISRELDEP(rd->evr))
354+
{
355+
Reldep *rd2 = GETRELDEP(pool, rd->evr);
356+
if (rd2->flags == REL_ELSE)
357+
{
358+
if (pool_dep_fulfilled_in_map(pool, map, rd2->name))
359+
return pool_dep_fulfilled_in_map(pool, map, rd->name);
360+
return pool_dep_fulfilled_in_map(pool, map, rd2->evr);
361+
}
362+
}
363+
if (pool_dep_fulfilled_in_map(pool, map, rd->name))
364+
return 1;
365+
return !pool_dep_fulfilled_in_map(pool, map, rd->evr);
366+
}
367+
if (rd->flags == REL_UNLESS)
368+
{
369+
if (ISRELDEP(rd->evr))
370+
{
371+
Reldep *rd2 = GETRELDEP(pool, rd->evr);
372+
if (rd2->flags == REL_ELSE)
373+
{
374+
if (!pool_dep_fulfilled_in_map(pool, map, rd2->name))
375+
return pool_dep_fulfilled_in_map(pool, map, rd->name);
376+
return pool_dep_fulfilled_in_map(pool, map, rd2->evr);
377+
}
378+
}
379+
if (!pool_dep_fulfilled_in_map(pool, map, rd->name))
380+
return 0;
381+
return !pool_dep_fulfilled_in_map(pool, map, rd->evr);
382+
}
383+
if (rd->flags == REL_AND)
384+
{
385+
if (!pool_dep_fulfilled_in_map(pool, map, rd->name))
386+
return 0;
387+
return pool_dep_fulfilled_in_map(pool, map, rd->evr);
388+
}
389+
if (rd->flags == REL_OR)
390+
{
391+
if (pool_dep_fulfilled_in_map(pool, map, rd->name))
392+
return 1;
393+
return pool_dep_fulfilled_in_map(pool, map, rd->evr);
394+
}
395+
return 0;
396+
}
397+
398+
int
399+
pool_dep_fulfilled_in_map(Pool *pool, const Map *map, Id dep)
400+
{
401+
Id p, pp;
402+
403+
if (ISRELDEP(dep)) {
404+
Reldep *rd = GETRELDEP(pool, dep);
405+
if (rd->flags == REL_COND || rd->flags == REL_UNLESS ||
406+
rd->flags == REL_AND || rd->flags == REL_OR)
407+
return pool_dep_fulfilled_in_map_cplx(pool, map, rd);
408+
if (rd->flags == REL_NAMESPACE && rd->name == NAMESPACE_SPLITPROVIDES)
409+
return 0;
410+
}
411+
FOR_PROVIDES(p, pp, dep) {
412+
if (MAPTST(map, p))
413+
return 1;
414+
}
415+
return 0;
416+
}
348417
/* EOF */

0 commit comments

Comments
 (0)