diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2012-09-13 22:41:41 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2012-09-14 13:34:47 +0300 |
commit | ae38f0a977ded4da48b71caac6f796505ef5456a (patch) | |
tree | 5910ebcdfd5aefc59192aa33cdf075077d74ae99 | |
parent | d3de5120b7930d1d2abf99b7c4a315b4053d702d (diff) | |
download | rpm-ae38f0a977ded4da48b71caac6f796505ef5456a.tar.gz rpm-ae38f0a977ded4da48b71caac6f796505ef5456a.tar.bz2 rpm-ae38f0a977ded4da48b71caac6f796505ef5456a.zip |
Bury the fingerprint hash-types into fprint.c, clean up
- fprint.h only needs rpmtypes.h now, remove historical leftovers
- Avoids having to define the hash types multiple times as they're
now buried out of sight
- fpHashFunction() and fpLookupSubdir() can now be made static, do so...
-rw-r--r-- | lib/fprint.c | 27 | ||||
-rw-r--r-- | lib/fprint.h | 43 | ||||
-rw-r--r-- | lib/rpmts_internal.h | 1 |
3 files changed, 25 insertions, 46 deletions
diff --git a/lib/fprint.c b/lib/fprint.c index e6aa42bcd..e4566a842 100644 --- a/lib/fprint.c +++ b/lib/fprint.c @@ -17,15 +17,27 @@ #include <libgen.h> /* Create new hash table type rpmFpEntryHash */ -#include "lib/rpmhash.C" - #undef HASHTYPE #undef HTKEYTYPE #undef HTDATATYPE #define HASHTYPE rpmFpEntryHash #define HTKEYTYPE const char * #define HTDATATYPE const struct fprintCacheEntry_s * +#include "lib/rpmhash.H" +#include "lib/rpmhash.C" + +/* Create by-fingerprint hash table */ +#undef HASHTYPE +#undef HTKEYTYPE +#undef HTDATATYPE +#define HASHTYPE rpmFpHash +#define HTKEYTYPE const fingerPrint * +#define HTDATATYPE struct rpmffi_s +#include "lib/rpmhash.H" #include "lib/rpmhash.C" +#undef HASHTYPE +#undef HTKEYTYPE +#undef HTDATATYPE /** * Finger print cache. @@ -196,7 +208,13 @@ exit: return 0; } -unsigned int fpHashFunction(const fingerPrint * fp) +/** + * Return hash value for a finger print. + * Hash based on dev and inode only! + * @param key pointer to finger print entry + * @return hash value + */ +static unsigned int fpHashFunction(const fingerPrint * fp) { unsigned int hash = 0; int j; @@ -246,7 +264,8 @@ void fpLookupList(fingerPrintCache cache, rpmstrPool pool, } } -void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr) +/* Check file for to be installed symlinks in their path and correct their fp */ +static void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr) { rpmfi fi = rpmteFI(p); struct fingerPrint_s current_fp; diff --git a/lib/fprint.h b/lib/fprint.h index 1a1c8e208..c68a49f30 100644 --- a/lib/fprint.h +++ b/lib/fprint.h @@ -6,9 +6,7 @@ * Identify a file name path by a unique "finger print". */ -#include <rpm/header.h> -#include <rpm/rpmte.h> -#include "lib/rpmdb_internal.h" +#include <rpm/rpmtypes.h> /** */ @@ -31,12 +29,6 @@ const char * subDir; const char * baseName; /*!< file base name */ }; -/* Create new hash table data type */ -#define HASHTYPE rpmFpEntryHash -#define HTKEYTYPE const char * -#define HTDATATYPE const struct fprintCacheEntry_s * -#include "lib/rpmhash.H" - /** * Finger print cache entry. * This is really a directory and symlink cache. We don't differentiate between @@ -49,22 +41,11 @@ struct fprintCacheEntry_s { ino_t ino; /*!< stat(2) inode number */ }; -/* Create new hash table data type */ - struct rpmffi_s { rpmte p; int fileno; }; -#undef HASHTYPE -#undef HTKEYTYPE -#undef HTDATATYPE - -#define HASHTYPE rpmFpHash -#define HTKEYTYPE const fingerPrint * -#define HTDATATYPE struct rpmffi_s -#include "lib/rpmhash.H" - /** */ #define FP_ENTRY_EQUAL(a, b) (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino)) @@ -119,15 +100,6 @@ int fpLookup(fingerPrintCache cache, fingerPrint *fp); /** - * Return hash value for a finger print. - * Hash based on dev and inode only! - * @param key pointer to finger print entry - * @return hash value - */ -RPM_GNUC_INTERNAL -unsigned int fpHashFunction(const fingerPrint * key); - -/** * Compare two finger print entries. * This routine is exactly equivalent to the FP_EQUAL macro. * @param key1 finger print 1 @@ -154,19 +126,6 @@ void fpLookupList(fingerPrintCache cache, rpmstrPool pool, const uint32_t * dirIndexes, int fileCount, fingerPrint * fpList); -/** - * Check file for to be installed symlinks in their path, - * correct their fingerprint and add it to newht. - * @param ht hash table containing all files fingerprints - * @param newht hash table to add the corrected fingerprints - * @param fpc fingerprint cache - * @param fi file iterator of the package - * @param filenr the number of the file we are dealing with - */ -RPM_GNUC_INTERNAL -void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr); - - #ifdef __cplusplus } #endif diff --git a/lib/rpmts_internal.h b/lib/rpmts_internal.h index a1e786f95..39511d0e3 100644 --- a/lib/rpmts_internal.h +++ b/lib/rpmts_internal.h @@ -7,6 +7,7 @@ #include "lib/rpmal.h" /* XXX availablePackage */ #include "lib/fprint.h" #include "lib/rpmlock.h" +#include "lib/rpmdb_internal.h" typedef struct diskspaceInfo_s * rpmDiskSpaceInfo; |