Increase the size of the tables used for storing package information

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>

If the internal tables used in the C module are not large enough to store
the list of discovered packages then checking installability becomes very
slow.
master
Adam D. Barratt 14 years ago
parent dad06c5279
commit 7bba1173e0

@ -245,6 +245,8 @@ class Britney:
self.systems = {}
# if requested, build the non-installable status and save it
# if this or the population of self.binaries below takes a very
# long time, try increasing SIZEOFHASHMAP in lib/dpkg.c and rebuilding
if not self.options.nuninst_cache:
self.__log("Building the list of not installable packages for the full archive", type="I")
self.sources = {'testing': self.read_sources(self.options.testing)}
@ -270,6 +272,8 @@ class Britney:
return
# read the source and binary packages for the involved distributions
# if this takes a very long time, try increasing SIZEOFHASHMAP in
# lib/dpkg.c and rebuilding
self.sources = {'testing': self.read_sources(self.options.testing),
'unstable': self.read_sources(self.options.unstable),
'tpu': self.read_sources(self.options.tpu),}

@ -7,6 +7,10 @@
#include "dpkg.h"
#include "memory.h"
// enlarge this if britney has issues parsing packages
// (e.g. very slow installability checks)
#define SIZEOFHASHMAP 16
/* #define DIAGNOSE 1 */
#define insert_packagenamelist(x,y) insert_l_packagenamelist(x,y,__LINE__)
@ -562,9 +566,9 @@ void free_packages(dpkg_packages *pkgs) {
}
HASH_IMPL(packagetbl, char *, dpkg_collected_package *, 15, strhash, strcmp,
HASH_IMPL(packagetbl, char *, dpkg_collected_package *, SIZEOFHASHMAP, strhash, strcmp,
KEEP(char*),free_collected_package);
HASH_IMPL(virtualpkgtbl, char *, virtualpkg *, 15, strhash, strcmp,
HASH_IMPL(virtualpkgtbl, char *, virtualpkg *, SIZEOFHASHMAP, strhash, strcmp,
KEEP(char*), free_virtualpkg);
/* dpkg_provision refers to memory allocated elsewhere */

Loading…
Cancel
Save