diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2012-09-07 10:33:22 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2012-09-07 13:34:27 +0300 |
commit | 9e47043b2d23d6e6657a2a18dd325d2ef014dba3 (patch) | |
tree | 87e1dd44653e0c4840843d8657bd19146ed31097 /preinstall.am | |
parent | a466227a2ff77c90f0b524792a5a1eda3e47cbe7 (diff) | |
download | rpm-9e47043b2d23d6e6657a2a18dd325d2ef014dba3.tar.gz rpm-9e47043b2d23d6e6657a2a18dd325d2ef014dba3.tar.bz2 rpm-9e47043b2d23d6e6657a2a18dd325d2ef014dba3.zip |
First cut of a libsolv-style string <-> id pool API
- The pool stores "arbitrary" number of strings in a space-efficient
manner, with near constant (hashed) string -> id lookup/store and
constant time id -> string and id -> string length lookups.
- Credits for the idea go to the Suse developers working on libsolv,
the basic concept is directly lifted from there but details
differ due to using rpm's own hash table implementation etc.
Another minor difference is using size_t for offsets to permit over
4GB total data size on 64bit systems, the total number of id's in
the pool is limited to uint32 max however (like in libsolv).
- Any (re)implementation bugs by yours truly, this is almost certainly
going to need further tuning and tweaking, API and otherwise.
Diffstat (limited to 'preinstall.am')
-rw-r--r-- | preinstall.am | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/preinstall.am b/preinstall.am index 4da80c1f8..d21d043cc 100644 --- a/preinstall.am +++ b/preinstall.am @@ -30,6 +30,10 @@ include/rpm/rpmstring.h: rpmio/rpmstring.h include/rpm/$(dirstamp) $(INSTALL_DATA) $(top_srcdir)/rpmio/rpmstring.h include/rpm/rpmstring.h BUILT_SOURCES += include/rpm/rpmstring.h CLEANFILES += include/rpm/rpmstring.h +include/rpm/rpmstrpool.h: rpmio/rpmstrpool.h include/rpm/$(dirstamp) + $(INSTALL_DATA) $(top_srcdir)/rpmio/rpmstrpool.h include/rpm/rpmstrpool.h +BUILT_SOURCES += include/rpm/rpmstrpool.h +CLEANFILES += include/rpm/rpmstrpool.h include/rpm/rpmsw.h: rpmio/rpmsw.h include/rpm/$(dirstamp) $(INSTALL_DATA) $(top_srcdir)/rpmio/rpmsw.h include/rpm/rpmsw.h BUILT_SOURCES += include/rpm/rpmsw.h |