projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce Z39.50/SRU operation timeout.
[pazpar2-moved-to-github.git]
/
src
/
termlists.c
diff --git
a/src/termlists.c
b/src/termlists.c
index
fd49cfa
..
892e6d9
100644
(file)
--- a/
src/termlists.c
+++ b/
src/termlists.c
@@
-26,6
+26,7
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <yaz/yaz-util.h>
#include "termlists.h"
#include <yaz/yaz-util.h>
#include "termlists.h"
+#include "jenkins_hash.h"
// Discussion:
// As terms are found in incoming records, they are added to (or updated in) a
// Discussion:
// As terms are found in incoming records, they are added to (or updated in) a
@@
-52,24
+53,6
@@
struct termlist
NMEM nmem;
};
NMEM nmem;
};
-
-// Jenkins one-at-a-time hash (from wikipedia)
-static unsigned int hash(const unsigned char *key)
-{
- unsigned int hash = 0;
-
- while (*key)
- {
- hash += *(key++);
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- hash += (hash << 15);
- return hash;
-}
-
struct termlist *termlist_create(NMEM nmem, int numterms, int highscore_size)
{
int hashsize = 1;
struct termlist *termlist_create(NMEM nmem, int numterms, int highscore_size)
{
int hashsize = 1;
@@
-148,7
+131,7
@@
void termlist_insert(struct termlist *tl, const char *term)
for (cp = buf + strlen(buf); cp != buf && strchr(",. -", cp[-1]); cp--)
cp[-1] = '\0';
for (cp = buf + strlen(buf); cp != buf && strchr(",. -", cp[-1]); cp--)
cp[-1] = '\0';
- bucket = hash((unsigned char *)buf) & tl->hashmask;
+ bucket = jenkins_hash((unsigned char *)buf) & tl->hashmask;
for (p = &tl->hashtable[bucket]; *p; p = &(*p)->next)
{
if (!strcmp(buf, (*p)->term.term))
for (p = &tl->hashtable[bucket]; *p; p = &(*p)->next)
{
if (!strcmp(buf, (*p)->term.term))
@@
-186,7
+169,9
@@
struct termlist_score **termlist_highscore(struct termlist *tl, int *len)
/*
* Local variables:
* c-basic-offset: 4
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
+