summaryrefslogtreecommitdiff
path: root/lib/transaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/transaction.c')
-rw-r--r--lib/transaction.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/transaction.c b/lib/transaction.c
index 8d2527d55..011e34512 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -909,15 +909,18 @@ rpmdbMatchIterator rpmFindBaseNamesInDB(rpmts ts, uint64_t fileCount)
fi = rpmfiInit(rpmteFI(p), 0);
while (rpmfiNext(fi) >= 0) {
size_t keylen;
+ unsigned int keyhash;
baseName = rpmfiBN(fi);
- if (rpmStringSetHasEntry(baseNames, baseName))
+
+ keyhash = rpmStringSetKeyHash(baseNames, baseName);
+ if (rpmStringSetHasHEntry(baseNames, baseName, keyhash))
continue;
keylen = strlen(baseName);
if (keylen == 0)
keylen++; /* XXX "/" fixup. */
rpmdbExtendIterator(mi, baseName, keylen);
- rpmStringSetAddEntry(baseNames, baseName);
+ rpmStringSetAddHEntry(baseNames, baseName, keyhash);
}
}
rpmtsiFree(pi);