-/* Copyright (C) 2003,2004,2005,2006 MORIOKA Tomohiko
+/* Copyright (C) 2003, 2004, 2005, 2006, 2013 MORIOKA Tomohiko
This file is part of the CONCORD Library.
The CONCORD Library is free software; you can redistribute it and/or
#include <string.h>
#include <stdlib.h>
#include "concord-name.h"
-
-struct CONCORD_HASH_TABLE_ENTRY
-{
- void *key;
- void *value;
-};
-
-struct CONCORD_HASH_TABLE
-{
- size_t size;
- CONCORD_HASH_TABLE_ENTRY *data;
-};
-
-CONCORD_HASH_TABLE* concord_make_hash_table (size_t size);
-void concord_destroy_hash_table (CONCORD_HASH_TABLE* hash);
-int concord_hash_c_string (const unsigned char *ptr);
+#include "hash-i.h"
CONCORD_HASH_TABLE*
concord_make_hash_table (size_t size)
/* derived from hashpjw, Dragon Book P436. */
-int
+unsigned long
concord_hash_c_string (const unsigned char *ptr)
{
- int hash = 0;
+ unsigned long hash = 0;
while (*ptr != '\0')
{
- int g;
+ unsigned long g;
hash = (hash << 4) + *ptr++;
g = hash & 0xf0000000;
if (g)
}
}
}
+ free (table->data);
table->size = new_table->size;
table->data = new_table->data;
free (new_table);