static DnfReldepList * reldeps_for(DnfPackage *pkg, Id type) { Pool *pool = dnf_package_get_pool(pkg); Solvable *s = get_solvable(pkg); DnfReldepList *reldeplist; Queue q, q_final; Id marker = -1; Id solv_type = type; Id rel_id; if (type == SOLVABLE_REQUIRES) marker = 0; if (type == SOLVABLE_PREREQMARKER) { solv_type = SOLVABLE_REQUIRES; marker = 1; } queue_init(&q); queue_init(&q_final); solvable_lookup_deparray(s, solv_type, &q, marker); for (int i = 0; i < q.count; i++) { rel_id = q.elements[i]; if (rel_id != SOLVABLE_PREREQMARKER) queue_push(&q_final, rel_id); } reldeplist = dnf_reldep_list_from_queue (pool, q_final); queue_free(&q); queue_free(&q_final); return reldeplist; }
static HyReldepList reldeps_for(HyPackage pkg, Id type) { Pool *pool = package_pool(pkg); Solvable *s = get_solvable(pkg); HyReldepList reldeplist; Queue q; queue_init(&q); solvable_lookup_deparray(s, type, &q, -1); reldeplist = reldeplist_from_queue(pool, q); queue_free(&q); return reldeplist; }
static HifReldepList * reldeps_for(HifPackage *pkg, Id type) { Pool *pool = hif_package_get_pool(pkg); Solvable *s = get_solvable(pkg); HifReldepList *reldeplist; Queue q; Id marker = -1; Id solv_type = type; if (type == SOLVABLE_PREREQMARKER) { solv_type = SOLVABLE_REQUIRES; marker = 1; } queue_init(&q); solvable_lookup_deparray(s, solv_type, &q, marker); reldeplist = hif_reldep_list_from_queue (pool, q); queue_free(&q); return reldeplist; }