From 97c5738b5a8c038cf1b893d4509c5da0c62e99f6 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 15 Apr 2013 14:11:31 +0200 Subject: [PATCH] also check repodata in fileconflicts precheck code --- ext/pool_fileconflicts.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ext/pool_fileconflicts.c b/ext/pool_fileconflicts.c index ca70dbb..bfd07ef 100644 --- a/ext/pool_fileconflicts.c +++ b/ext/pool_fileconflicts.c @@ -743,6 +743,7 @@ precheck_solvable_files(struct cbdata *cbdata, Pool *pool, Id p) Hashval lastdirhash = 0; int lastdirlen = 0; int checkthisdir = 0; + Repodata *lastrepodata = 0; dataiterator_init(&di, pool, 0, p, SOLVABLE_FILELIST, 0, SEARCH_COMPLETE_FILELIST); while (dataiterator_step(&di)) @@ -757,11 +758,12 @@ precheck_solvable_files(struct cbdata *cbdata, Pool *pool, Id p) else { /* hash the full path */ - if (di.kv.id != lastdirid) + if (di.data != lastrepodata || di.kv.id != lastdirid) { const char *dir; + lastrepodata = di.data; lastdirid = di.kv.id; - dir = repodata_dir2str(di.data, lastdirid, ""); + dir = repodata_dir2str(lastrepodata, lastdirid, ""); lastdirlen = strlen(dir); lastdirhash = strhash(dir); checkthisdir = isindirmap(cbdata, lastdirhash ? lastdirhash : lastdirlen + 1); -- 2.7.4