From: Michael Schroeder Date: Tue, 14 Jun 2011 09:55:37 +0000 (+0200) Subject: - use FOR_REPODATAS macro X-Git-Tag: BASE-SuSE-Code-12_1-Branch~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b400c17febadf2b05aa88d9e6cdca882544a6cb;p=thirdparty%2Flibsolv.git - use FOR_REPODATAS macro --- diff --git a/ext/repo_susetags.c b/ext/repo_susetags.c index 80ea3047..a8646c6c 100644 --- a/ext/repo_susetags.c +++ b/ext/repo_susetags.c @@ -586,7 +586,8 @@ repo_add_susetags(Repo *repo, FILE *fp, Id defvendor, const char *language, int { Repodata *sdata; int i; - for (i = 0, sdata = repo->repodata; i < repo->nrepodata; i++, sdata++) + + FOR_REPODATAS(repo, i, sdata) { int p; if (!repodata_has_keyname(sdata, SUSETAGS_SHARE_NAME)) diff --git a/ext/repo_write.c b/ext/repo_write.c index ece080c7..0efb346e 100644 --- a/ext/repo_write.c +++ b/ext/repo_write.c @@ -1023,8 +1023,8 @@ repo_write(Repo *repo, FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void /* start with all KEY_STORAGE_SOLVABLE ids */ n = ID_NUM_INTERNAL; - for (i = 0; i < repo->nrepodata; i++) - n += repo->repodata[i].nkeys; + FOR_REPODATAS(repo, i, data) + n += data->nkeys; cbdata.keymap = sat_calloc(n, sizeof(Id)); cbdata.keymapstart = sat_calloc(repo->nrepodata, sizeof(Id)); repodataused = sat_calloc(repo->nrepodata, 1); @@ -1073,9 +1073,8 @@ repo_write(Repo *repo, FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void dirpool = 0; dirpooldata = 0; n = ID_NUM_INTERNAL; - for (i = 0; i < repo->nrepodata; i++) + FOR_REPODATAS(repo, i, data) { - data = repo->repodata + i; cbdata.keymapstart[i] = n; cbdata.keymap[n++] = 0; /* key 0 */ idused = 0; @@ -1294,7 +1293,7 @@ for (i = 1; i < target.nkeys; i++) cbdata.sp = cbdata.schema; /* collect all other data from all repodatas */ /* XXX: merge arrays of equal keys? */ - for (j = 0, data = repo->repodata; j < repo->nrepodata; j++, data++) + FOR_REPODATAS(repo, j, data) { if (!repodataused[j]) continue; @@ -1390,7 +1389,7 @@ for (i = 1; i < target.nkeys; i++) if (anyrepodataused) { - for (j = 0, data = repo->repodata; j < repo->nrepodata; j++, data++) + FOR_REPODATAS(repo, j, data) { if (!repodataused[j]) continue; @@ -1628,7 +1627,7 @@ fprintf(stderr, "dir %d used %d\n", i, cbdata.dirused ? cbdata.dirused[i] : 1); data_addid(xd, mainschema); #if 1 - for (j = 0, data = repo->repodata; j < repo->nrepodata; j++, data++) + FOR_REPODATAS(repo, j, data) { if (!repodataused[j]) continue; @@ -1678,7 +1677,7 @@ fprintf(stderr, "dir %d used %d\n", i, cbdata.dirused ? cbdata.dirused[i] : 1); if (anyrepodataused) { cbdata.vstart = -1; - for (j = 0, data = repo->repodata; j < repo->nrepodata; j++, data++) + FOR_REPODATAS(repo, j, data) { if (!repodataused[j]) continue; diff --git a/src/pool.c b/src/pool.c index ee65813b..e9035a1b 100644 --- a/src/pool.c +++ b/src/pool.c @@ -980,7 +980,7 @@ pool_addfileprovides_search(Pool *pool, struct addfileprovides_cbdata *cbd, stru continue; } ndone = 0; - for (data = repo->repodata, repodataid = 0; repodataid < repo->nrepodata; repodataid++, data++) + FOR_REPODATAS(repo, repodataid, data) { if (ndone >= repo->nsolvables) break; diff --git a/src/pool.h b/src/pool.h index fa701bfd..4c53bfa7 100644 --- a/src/pool.h +++ b/src/pool.h @@ -69,12 +69,12 @@ struct _Pool { Hashmask relhashmask; struct _Repo **repos; - int nrepos; + int nrepos; /* repos allocated */ struct _Repo *installed; /* packages considered installed */ Solvable *solvables; - int nsolvables; + int nsolvables; /* solvables allocated */ const char **languages; int nlanguages; diff --git a/src/repo.c b/src/repo.c index 55e9fd88..25af8b45 100644 --- a/src/repo.c +++ b/src/repo.c @@ -202,7 +202,7 @@ void repo_free_solvable_block(Repo *repo, Id start, int count, int reuseids) for (s = repo->pool->solvables + start, i = count; i--; s++) s->repo = 0; pool_free_solvable_block(repo->pool, start, count, reuseids); - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) if (data->end > repo->end) repodata_shrink(data, repo->end); } @@ -841,7 +841,7 @@ repo_search_md(Repo *repo, Id p, Id keyname, struct matchdata *md) } } - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (p < data->start || p >= data->end) continue; @@ -923,7 +923,7 @@ repo_lookup_str(Repo *repo, Id entry, Id keyname) return pool_id2str(pool, pool->solvables[entry].vendor); } } - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -955,7 +955,7 @@ repo_lookup_num(Repo *repo, Id entry, Id keyname, unsigned int notfound) return notfound; } } - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -990,7 +990,7 @@ repo_lookup_id(Repo *repo, Id entry, Id keyname) return repo->pool->solvables[entry].vendor; } } - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -1044,7 +1044,7 @@ repo_lookup_idarray(Repo *repo, Id entry, Id keyname, Queue *q) return lookup_idarray_solvable(repo, repo->pool->solvables[entry].enhances, q); } } - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -1073,7 +1073,7 @@ repo_lookup_bin_checksum(Repo *repo, Id entry, Id keyname, Id *typep) int i; const unsigned char *chk; - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -1103,7 +1103,7 @@ repo_lookup_void(Repo *repo, Id entry, Id keyname) int i; Id type; - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -1123,7 +1123,7 @@ repo_lookup_type(Repo *repo, Id entry, Id keyname) int i; Id type; - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { if (entry != SOLVID_META && (entry < data->start || entry >= data->end)) continue; @@ -1274,7 +1274,7 @@ repo_internalize(Repo *repo) int i; Repodata *data; - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) if (data->attrs || data->xattrs) repodata_internalize(data); } @@ -1285,7 +1285,7 @@ repo_disable_paging(Repo *repo) int i; Repodata *data; - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) repodata_disable_paging(data); } // EOF diff --git a/src/repo.h b/src/repo.h index fd2bde13..e7f15eca 100644 --- a/src/repo.h +++ b/src/repo.h @@ -281,4 +281,7 @@ void repo_add_poolstr_array(Repo *repo, Id p, Id keyname, const char *str); void repo_internalize(Repo *repo); void repo_disable_paging(Repo *repo); +#define FOR_REPODATAS(repo, rdid, data) \ + for (rdid = 0, data = repo->repodata + rdid; rdid < repo->nrepodata; rdid++, data++) + #endif /* LIBSOLV_REPO_H */ diff --git a/tools/common_write.c b/tools/common_write.c index 186caf57..5f0fb01b 100644 --- a/tools/common_write.c +++ b/tools/common_write.c @@ -225,7 +225,7 @@ tool_write(Repo *repo, const char *basename, const char *attrname) int has_FL = 0; /* find languages and other info */ - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { for (j = 1, key = data->keys + j; j < data->nkeys; j++, key++) { diff --git a/tools/dumpsolv.c b/tools/dumpsolv.c index 91848b75..ceabd6eb 100644 --- a/tools/dumpsolv.c +++ b/tools/dumpsolv.c @@ -25,7 +25,7 @@ dump_repodata(Repo *repo) if (repo->nrepodata == 0) return; printf("repo contains %d repodata sections:\n", repo->nrepodata); - for (i = 0, data = repo->repodata; i < repo->nrepodata; i++, data++) + FOR_REPODATAS(repo, i, data) { unsigned int j; printf("\nrepodata %d has %d keys, %d schemata\n", i + 1, data->nkeys - 1, data->nschemata - 1); diff --git a/tools/installcheck.c b/tools/installcheck.c index 91eeab01..806f9b0c 100644 --- a/tools/installcheck.c +++ b/tools/installcheck.c @@ -219,7 +219,7 @@ main(int argc, char **argv) for (i = j = 0; i < cand.count; i++) { p = cand.elements[i]; - if (solv->decisionmap[p] <= 0) + if (solver_get_decisionlevel(solv, p) <= 0) { cand.elements[j++] = p; continue; diff --git a/tools/patchcheck.c b/tools/patchcheck.c index ce8d8cde..9ebb535d 100644 --- a/tools/patchcheck.c +++ b/tools/patchcheck.c @@ -139,12 +139,15 @@ void toinst(Solver *solv, Repo *repo, Repo *instrepo) { Pool *pool = solv->pool; + Queue q; int k; Id p; - for (k = 0; k < solv->decisionq.count; k++) + queue_init(&q); + solver_get_decisionqueue(solv, &q); + for (k = 0; k < q.count; k++) { - p = solv->decisionq.elements[k]; + p = q.elements[k]; if (p < 0 || p == SYSTEMSOLVABLE) continue; @@ -152,6 +155,7 @@ toinst(Solver *solv, Repo *repo, Repo *instrepo) /* oh my! */ pool->solvables[p].repo = instrepo; } + queue_free(&q); } void @@ -396,7 +400,7 @@ test_can_upgrade_all_packages(context_t *c, Id pid) for (i = 0; i < cand.count; i++) { p = cand.elements[i]; - if (p > 0 && solv->decisionmap[p] > 0) + if (p > 0 && solver_get_decisionlevel(solv, p) > 0) cand.elements[i] = -p; /* drop candidate */ } solver_free(solv);