Author: mlschroe Date: Thu Mar 6 20:12:47 2008 New Revision: 9040 URL: http://svn.opensuse.org/viewcvs/zypp?rev=9040&view=rev Log: - add localpool parameter - fix localpool handling in repo_write Modified: trunk/sat-solver/tools/repo_patchxml.c trunk/sat-solver/tools/repo_rpmdb.c trunk/sat-solver/tools/repo_rpmmd.c trunk/sat-solver/tools/repo_susetags.c trunk/sat-solver/tools/repo_write.c Modified: trunk/sat-solver/tools/repo_patchxml.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_patchxml.c?rev=9040&r1=9039&r2=9040&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_patchxml.c (original) +++ trunk/sat-solver/tools/repo_patchxml.c Thu Mar 6 20:12:47 2008 @@ -716,7 +716,7 @@ } pd.pool = pool; pd.repo = repo; - pd.data = repo_add_repodata(pd.repo); + pd.data = repo_add_repodata(pd.repo, 0); pd.content = malloc(256); pd.acontent = 256; Modified: trunk/sat-solver/tools/repo_rpmdb.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_rpmdb.c?rev=9040&r1=9039&r2=9040&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_rpmdb.c (original) +++ trunk/sat-solver/tools/repo_rpmdb.c Thu Mar 6 20:12:47 2008 @@ -1023,7 +1023,7 @@ if (!rootdir) rootdir = ""; - repodata = repo_add_repodata(repo); + repodata = repo_add_repodata(repo, 0); if (ref && !(ref->nsolvables && ref->rpmdbid)) ref = 0; @@ -1394,7 +1394,7 @@ if (nrpms <= 0) return; - repodata = repo_add_repodata(repo); + repodata = repo_add_repodata(repo, 0); for (i = 0; i < nrpms; i++) { if ((fp = fopen(rpms[i], "r")) == 0) Modified: trunk/sat-solver/tools/repo_rpmmd.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_rpmmd.c?rev=9040&r1=9039&r2=9040&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_rpmmd.c (original) +++ trunk/sat-solver/tools/repo_rpmmd.c Thu Mar 6 20:12:47 2008 @@ -867,7 +867,7 @@ pd.common.pool = pool; pd.common.repo = repo; - pd.data = repo_add_repodata(repo); + pd.data = repo_add_repodata(repo, 0); pd.content = sat_malloc(256); pd.acontent = 256; Modified: trunk/sat-solver/tools/repo_susetags.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_susetags.c?rev=9040&r1=9039&r2=9040&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_susetags.c (original) +++ trunk/sat-solver/tools/repo_susetags.c Thu Mar 6 20:12:47 2008 @@ -438,7 +438,7 @@ indesc = 1; } if (!data) - data = repo_add_repodata(repo); + data = repo_add_repodata(repo, 0); memset(&pd, 0, sizeof(pd)); line = malloc(1024); Modified: trunk/sat-solver/tools/repo_write.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/tools/repo_write.c?rev=9040&r1=9039&r2=9040&view=diff ============================================================================== --- trunk/sat-solver/tools/repo_write.c (original) +++ trunk/sat-solver/tools/repo_write.c Thu Mar 6 20:12:47 2008 @@ -106,7 +106,7 @@ return a->map - b->map; } -static Pool *cmp_pool; +static Stringpool *cmp_spool; static int needid_cmp_need_s(const void *ap, const void *bp) @@ -117,8 +117,8 @@ r = b->need - a->need; if (r) return r; - const char *as = cmp_pool->ss.stringspace + cmp_pool->ss.strings[a->map]; - const char *bs = cmp_pool->ss.stringspace + cmp_pool->ss.strings[b->map]; + const char *as = cmp_spool->stringspace + cmp_spool->strings[a->map]; + const char *bs = cmp_spool->stringspace + cmp_spool->strings[b->map]; return strcmp(as, bs); } @@ -1014,6 +1014,14 @@ idused = 1; if (key->type == REPOKEY_TYPE_DIR || key->type == REPOKEY_TYPE_DIRNUMNUMARRAY || key->type == REPOKEY_TYPE_DIRSTRARRAY) dirused = 1; + /* make sure we know that key */ + if (data->localpool) + { + stringpool_str2id(&data->spool, id2str(pool, key->name), 1); + stringpool_str2id(&data->spool, id2str(pool, key->type), 1); + if (key->type == REPOKEY_TYPE_CONSTANTID) + stringpool_str2id(&data->spool, id2str(pool, key->size), 1); + } } if (idused) { @@ -1063,6 +1071,8 @@ else stringpool_init_empty(spool); cbdata.ownspool = spool; + if (dirpoolusage) + dirpoolusage = 3; /* hmm, maybe not needed */ } else if (poolusage == 0 || poolusage == 1) { @@ -1331,13 +1341,13 @@ for (i = 1; i < reloff + pool->nrels; i++) needid[i].map = i; - cmp_pool = pool; + cmp_spool = spool; #if 0 - qsort(needid + 1, reloff - 1, sizeof(*needid), needid_cmp_need_s); + qsort(needid + 1, spool->nstrings - 1, sizeof(*needid), needid_cmp_need_s); #else /* make first entry '' */ needid[1].need = 1; - qsort(needid + 2, reloff - 2, sizeof(*needid), needid_cmp_need_s); + qsort(needid + 2, spool->nstrings - 2, sizeof(*needid), needid_cmp_need_s); #endif qsort(needid + reloff, pool->nrels, sizeof(*needid), needid_cmp_need); @@ -1347,7 +1357,7 @@ if (!needid[i].need) break; needid[i].need = 0; - sizeid += strlen(pool->ss.stringspace + pool->ss.strings[needid[i].map]) + 1; + sizeid += strlen(spool->stringspace + spool->strings[needid[i].map]) + 1; } nstrings = i; @@ -1485,7 +1495,7 @@ if (!old_str[same] || !str[same] || old_str[same] != str[same]) break; *pp++ = same; - len = strlen (str + same) + 1; + len = strlen(str + same) + 1; memcpy (pp, str + same, len); pp += len; old_str = str; @@ -1511,7 +1521,7 @@ */ for (i = 0; i < nrels; i++) { - ran = pool->rels + (needid[reloff + i].map - pool->ss.nstrings); + ran = pool->rels + (needid[reloff + i].map - reloff); write_id(fp, needid[ISRELDEP(ran->name) ? RELOFF(ran->name) : ran->name].need); write_id(fp, needid[ISRELDEP(ran->evr) ? RELOFF(ran->evr) : ran->evr].need); write_u8(fp, ran->flags); -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org