Author: mlschroe Date: Mon Oct 22 20:01:35 2007 New Revision: 7598 URL: http://svn.opensuse.org/viewcvs/zypp?rev=7598&view=rev Log: - first step in getting rid of dependency pointers: store back pointer to source in Solvable. Modified: trunk/sat-solver/src/pool.c trunk/sat-solver/src/pool.h trunk/sat-solver/src/solvable.h trunk/sat-solver/src/solver.c trunk/sat-solver/src/source_solv.c trunk/sat-solver/tools/source_content.c trunk/sat-solver/tools/source_helix.c trunk/sat-solver/tools/source_patchxml.c trunk/sat-solver/tools/source_rpmdb.c trunk/sat-solver/tools/source_rpmmd.c trunk/sat-solver/tools/source_susetags.c Modified: trunk/sat-solver/src/pool.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/pool.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/src/pool.c (original) +++ trunk/sat-solver/src/pool.c Mon Oct 22 20:01:35 2007 @@ -513,29 +513,4 @@ return pool->whatprovidesdata + pool->whatprovides[d]; } - -/* - * return source of solvable - * or NULL - */ - -Source * -pool_source(Pool *pool, Solvable *s) -{ - int i; - Source *source; - int off = s - pool->solvables; - - for (i = 0; i < pool->nsources; i++) - { - source = pool->sources[i]; - if (off >= source->start - && off < source->start+source->nsolvables) - { - return source; - } - } - return NULL; -} - // EOF Modified: trunk/sat-solver/src/pool.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/pool.h?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/src/pool.h (original) +++ trunk/sat-solver/src/pool.h Mon Oct 22 20:01:35 2007 @@ -135,8 +135,6 @@ extern Id *pool_addrelproviders(Pool *pool, Id d); -extern Source *pool_source(Pool *pool, Solvable *s); - static inline int pool_installable(Pool *pool, Solvable *s) { if (s->arch == ARCH_SRC || s->arch == ARCH_NOSRC) Modified: trunk/sat-solver/src/solvable.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/solvable.h?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/src/solvable.h (original) +++ trunk/sat-solver/src/solvable.h Mon Oct 22 20:01:35 2007 @@ -8,14 +8,17 @@ #define SOLVABLE_H #include "pooltypes.h" +#include "source.h" typedef struct _Solvable { Id name; Id arch; - Id evr; + Id evr; /* epoch:version-release */ - // dependencies are pointers into idarray of source the solvable originates from - Id *provides; // terminated with Id 0 + Source *source; /* source we belong to */ + + /* dependencies are pointers into idarray of source */ + Id *provides; /* terminated with Id 0 */ Id *obsoletes; Id *conflicts; Modified: trunk/sat-solver/src/solver.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/solver.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/src/solver.c (original) +++ trunk/sat-solver/src/solver.c Mon Oct 22 20:01:35 2007 @@ -854,7 +854,7 @@ #endif addrule(solv, -n, 0); /* mark requestor as uninstallable */ if (solv->rc_output) - printf(">!> !unflag %s-%s.%s[%s]\n", id2str(pool, s->name), id2str(pool, s->evr), id2str(pool, s->arch), source_name(pool_source(pool, s))); + printf(">!> !unflag %s-%s.%s[%s]\n", id2str(pool, s->name), id2str(pool, s->evr), id2str(pool, s->arch), source_name(s->source)); continue; } #if 0 @@ -2480,7 +2480,7 @@ } if (solv->rc_output) { - Source *source = pool_source(pool, s); + Source *source = s->source; if (source && strcmp(source_name(source), "locales")) printf("[%s]", source_name(source)); } @@ -2701,7 +2701,7 @@ case SOLVER_INSTALL_SOLVABLE: /* install specific solvable */ if (solv->rc_output) { Solvable *s = pool->solvables + what; - printf(">!> Installing %s from channel %s\n", id2str(pool, s->name), source_name(pool_source(pool, s))); + printf(">!> Installing %s from channel %s\n", id2str(pool, s->name), source_name(s->source)); } addrule(solv, what, 0); /* install by Id */ break; Modified: trunk/sat-solver/src/source_solv.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/source_solv.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/src/source_solv.c (original) +++ trunk/sat-solver/src/source_solv.c Mon Oct 22 20:01:35 2007 @@ -484,6 +484,7 @@ #endif for (i = 0, s = pool->solvables + source->start; i < numsolv; i++, s++) { + s->source = source; databits = 0; if (numsolvdatabits) { Modified: trunk/sat-solver/tools/source_content.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_content.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_content.c (original) +++ trunk/sat-solver/tools/source_content.c Mon Oct 22 20:01:35 2007 @@ -177,7 +177,7 @@ source = pool_addsource_empty(pool); memset(&pd, 0, sizeof(pd)); - line = malloc(1024); + line = xmalloc(1024); aline = 1024; pd.source = source; @@ -233,6 +233,7 @@ memset(deps + pack, 0, (PACK_BLOCK + 1) * sizeof(struct deps)); } s = pool->solvables + source->start + pack; + s->source = source; dp = deps + pack; pack++; } Modified: trunk/sat-solver/tools/source_helix.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_helix.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_helix.c (original) +++ trunk/sat-solver/tools/source_helix.c Mon Oct 22 20:01:35 2007 @@ -637,6 +637,7 @@ { case STATE_PACKAGE: /* package complete */ + s->source = pd->source; if (!s->arch) /* default to "noarch" */ s->arch = ARCH_NOARCH; Modified: trunk/sat-solver/tools/source_patchxml.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_patchxml.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_patchxml.c (original) +++ trunk/sat-solver/tools/source_patchxml.c Mon Oct 22 20:01:35 2007 @@ -295,6 +295,7 @@ /* HACK: close patch */ if (pd->kind && !strcmp(pd->kind, "patch")) { + s->source = pd->source; if (!s->arch) s->arch = ARCH_NOARCH; pd->deps[pd->pack].provides = source_addid_dep(pd->source, pd->deps[pd->pack].provides, rel2id(pool, s->name, s->evr, REL_EQ, 1), 0); @@ -406,6 +407,7 @@ case STATE_PATCH: if (!strcmp(name, "patch") && strcmp(pd->kind, "patch")) break; /* already closed */ + s->source = pd->source; if (!s->arch) s->arch = ARCH_NOARCH; if (s->arch != ARCH_SRC && s->arch != ARCH_NOSRC) Modified: trunk/sat-solver/tools/source_rpmdb.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_rpmdb.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_rpmdb.c (original) +++ trunk/sat-solver/tools/source_rpmdb.c Mon Oct 22 20:01:35 2007 @@ -586,6 +586,7 @@ memset(deps + asolv, 0, 256 * sizeof(*deps)); asolv += 256; } + pool->solvables[source->start + i].source = source; if (key.size != 4) { fprintf(stderr, "corrupt Packages database (key size)\n"); @@ -716,6 +717,7 @@ s = pool->solvables + source->start; for (i = 0; i < nrpmids; i++, rp++, s++) { + s->source = source; dbid = rp->dbid; source->rpmdbid[i] = dbid; if (refhash) Modified: trunk/sat-solver/tools/source_rpmmd.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_rpmmd.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_rpmmd.c (original) +++ trunk/sat-solver/tools/source_rpmmd.c Mon Oct 22 20:01:35 2007 @@ -374,13 +374,7 @@ switch (pd->state) { case STATE_PACKAGE: -#if 0 - { - const char *arch = id2str(pool, s->arch); - if (strcmp(arch, "noarch") && strcmp(arch, "i586") && strcmp(arch, "i686")) - break; - } -#endif + s->source = pd->source; if (!s->arch) s->arch = ARCH_NOARCH; if (s->arch != ARCH_SRC && s->arch != ARCH_NOSRC) Modified: trunk/sat-solver/tools/source_susetags.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/source_susetags.c?rev=7598&r1=7597&r2=7598&view=diff ============================================================================== --- trunk/sat-solver/tools/source_susetags.c (original) +++ trunk/sat-solver/tools/source_susetags.c Mon Oct 22 20:01:35 2007 @@ -240,6 +240,7 @@ memset(deps + pack, 0, (PACK_BLOCK + 1) * sizeof(struct deps)); } s = pool->solvables + source->start + pack; + s->source = source; dp = deps + pack; pack++; if (split(line + 5, sp, 5) != 4) -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org