Author: matz Date: Sun Nov 25 04:34:37 2007 New Revision: 7909 URL: http://svn.opensuse.org/viewcvs/zypp?rev=7909&view=rev Log: Fix mergesolv for repos with holes. Modified: trunk/sat-solver/tools/mergesolv.c Modified: trunk/sat-solver/tools/mergesolv.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/mergesolv.c?rev=7909&r1=7908&r2=7909&view=diff ============================================================================== --- trunk/sat-solver/tools/mergesolv.c (original) +++ trunk/sat-solver/tools/mergesolv.c Sun Nov 25 04:34:37 2007 @@ -54,11 +54,11 @@ { Repo *repo = pool->repos[i]; int si; + Solvable *s; memcpy (new_id + new_id_size, repo->idarraydata, repo->idarraysize * sizeof (new_id[0])); - for (si = repo->start; si < repo->start + repo->nsolvables; si++) + FOR_REPO_SOLVABLES (repo, si, s) { - Solvable *s = pool->solvables + si; if (s->provides) s->provides += new_id_size; if (s->obsoletes) @@ -77,13 +77,20 @@ s->enhances += new_id_size; if (s->freshens) s->freshens += new_id_size; + if (i > 0) + s->repo = pool->repos[0]; } new_id_size += repo->idarraysize; if (i > 0) { pool->repos[0]->nsolvables += repo->nsolvables; + if (pool->repos[0]->start > repo->start) + pool->repos[0]->start = repo->start; + if (pool->repos[0]->end < repo->end) + pool->repos[0]->end = repo->end; repo->nsolvables = 0; repo->start = pool->nsolvables; + repo->end = repo->start; free (repo->idarraydata); repo->idarraydata = 0; } -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org