|
@@ -192,12 +192,12 @@ bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long Offset)
|
|
|
// ---------------------------------------------------------------------
|
|
// ---------------------------------------------------------------------
|
|
|
/* This looks for the first double new line in the data stream. It also
|
|
/* This looks for the first double new line in the data stream. It also
|
|
|
indexes the tags in the section. This very simple hash function for the
|
|
indexes the tags in the section. This very simple hash function for the
|
|
|
- first 3 letters gives very good performance on the debian package files */
|
|
|
|
|
|
|
+ last 8 letters gives very good performance on the debian package files */
|
|
|
inline static unsigned long AlphaHash(const char *Text, const char *End = 0)
|
|
inline static unsigned long AlphaHash(const char *Text, const char *End = 0)
|
|
|
{
|
|
{
|
|
|
unsigned long Res = 0;
|
|
unsigned long Res = 0;
|
|
|
for (; Text != End && *Text != ':' && *Text != 0; Text++)
|
|
for (; Text != End && *Text != ':' && *Text != 0; Text++)
|
|
|
- Res = (unsigned long)(*Text) ^ (Res << 2);
|
|
|
|
|
|
|
+ Res = ((unsigned long)(*Text) & 0xDF) ^ (Res << 1);
|
|
|
return Res & 0xFF;
|
|
return Res & 0xFF;
|
|
|
}
|
|
}
|
|
|
|
|
|