X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FHash.c;h=09d0a06808dd83a8ddfcc98f32239cb268e3fbba;hb=209e093599d0d4db5487d124895d817c55b7c052;hp=1d80640c4ab171ed7a750d120cb2c29601c01048;hpb=9f2ceb4da7dfbc1cfd09ce54610ebe64288b9007;p=ghc-hetmet.git diff --git a/rts/Hash.c b/rts/Hash.c index 1d80640..09d0a06 100644 --- a/rts/Hash.c +++ b/rts/Hash.c @@ -10,10 +10,10 @@ #include "PosixSource.h" #include "Rts.h" + #include "Hash.h" #include "RtsUtils.h" -#include #include #define HSEGSIZE 1024 /* Size of a single hash table segment */ @@ -35,9 +35,6 @@ struct hashlist { typedef struct hashlist HashList; -typedef int HashFunction(HashTable *table, StgWord key); -typedef int CompareFunction(StgWord key1, StgWord key2); - struct hashtable { int split; /* Next bucket to split when expanding */ int max; /* Max bucket of smaller table */ @@ -55,7 +52,7 @@ struct hashtable { * next bucket to be split, re-hash using the larger table. * -------------------------------------------------------------------------- */ -static int +int hashWord(HashTable *table, StgWord key) { int bucket; @@ -73,7 +70,7 @@ hashWord(HashTable *table, StgWord key) return bucket; } -static int +int hashStr(HashTable *table, char *key) { int h, bucket; @@ -347,7 +344,7 @@ freeHashTable(HashTable *table, void (*freeDataFun)(void *) ) * initializing all of the first segment's hash buckets to NULL. * -------------------------------------------------------------------------- */ -static HashTable * +HashTable * allocHashTable_(HashFunction *hash, CompareFunction *compare) { HashTable *table;