[zypp-commit] r9208 - in /trunk/sat-solver: src/repo_solv.c tools/repo_write.c
Author: mlschroe Date: Wed Mar 19 19:39:16 2008 New Revision: 9208 URL: http://svn.opensuse.org/viewcvs/zypp?rev=9208&view=rev Log: - write addedprovides as rel_idarray to save some bytes Modified: trunk/sat-solver/src/repo_solv.c trunk/sat-solver/tools/repo_write.c Modified: trunk/sat-solver/src/repo_solv.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/repo_solv.c?rev=9208&r1=9207&r2=9208&view=diff ============================================================================== --- trunk/sat-solver/src/repo_solv.c (original) +++ trunk/sat-solver/src/repo_solv.c Wed Mar 19 19:39:16 2008 @@ -545,12 +545,23 @@ while ((key = *keyp++) != 0) { id = keys[key].name; - if (id == REPODATA_ADDEDFILEPROVIDES && keys[key].type == REPOKEY_TYPE_IDARRAY) + if (id == REPODATA_ADDEDFILEPROVIDES && keys[key].type == REPOKEY_TYPE_REL_IDARRAY) { + Id old = 0; /* + 1 just in case */ ida = sat_calloc(keys[key].size + 1, sizeof(Id)); - read_idarray(maindata, numid, idmap, ida, ida + keys[key].size + 1); + read_idarray(maindata, 0, 0, ida, ida + keys[key].size + 1); maindata->addedfileprovides = ida; + for (; *ida; ida++) + { + old += *ida - 1; + if (old >= numid) + { + *ida = 0; + break; + } + *ida = idmap ? idmap[old] : old; + } continue; } skip_item(maindata, keys[key].type, numid, numrel); Modified: trunk/sat-solver/tools/repo_write.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_write.c?rev=9208&r1=9207&r2=9208&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_write.c (original) +++ trunk/sat-solver/tools/repo_write.c Wed Mar 19 19:39:16 2008 @@ -946,7 +946,7 @@ key = cbdata.mykeys + cbdata.nmykeys; key->name = REPODATA_ADDEDFILEPROVIDES; - key->type = REPOKEY_TYPE_IDARRAY; + key->type = REPOKEY_TYPE_REL_IDARRAY; key->size = 0; key->storage = KEY_STORAGE_SOLVABLE; cbdata.keymap[key->name] = cbdata.nmykeys++; @@ -1606,8 +1606,7 @@ data_addid(&xd, repodataschemata[i]); if (fileinfo[i].addedfileprovides) { - for (j = 0; fileinfo[i].addedfileprovides[j]; j++) - data_addideof(&xd, needid[fileinfo[i].addedfileprovides[j]].need, fileinfo[i].addedfileprovides[j + 1] ? 0 : 1); + data_addidarray_sort(&xd, pool, needid, fileinfo[i].addedfileprovides, 0); } else { -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
mlschroe@svn.opensuse.org