sprintf(timestamp, "%s", getCurrentTimestamp());
sprintf(basename_raw, "%s-%s", timestamp, name);
- sprintf(basename, "%s-%08x", timestamp, get_hash_from_key(basename_raw));
+ sprintf(basename, "%s-%08x", timestamp, get_hash_from_string(basename_raw));
return basename;
}
#define remove_hash_entry hashtable_remove
#endif
-unsigned int get_hash_from_key(void *key)
+unsigned int get_hash_from_string(void *key)
{
/*
djb2
return hash;
}
-int hash_keys_are_equal(void *key1, void *key2)
+unsigned int get_hash_from_integer(void *key)
+{
+ unsigned int hash = PTR_TO_UINT(key);
+
+ return hash;
+}
+
+int hash_key_strings_are_equal(void *key1, void *key2)
{
return (strEqual((char *)key1, (char *)key2));
}
+int hash_key_integers_are_equal(void *key1, void *key2)
+{
+ return (key1 == key2);
+}
+
SetupFileHash *newSetupFileHash(void)
{
SetupFileHash *new_hash =
- create_hashtable(16, 0.75, get_hash_from_key, hash_keys_are_equal);
+ create_hashtable(get_hash_from_string, hash_key_strings_are_equal, free, free);
if (new_hash == NULL)
Fail("create_hashtable() failed -- out of memory");
if (hash == NULL)
return;
- hashtable_destroy(hash, 1); // 1 == also free values stored in hash
+ hashtable_destroy(hash);
}
char *getHashEntry(SetupFileHash *hash, char *token)
Fail("cannot insert into hash -- aborting");
}
-char *removeHashEntry(SetupFileHash *hash, char *token)
+void removeHashEntry(SetupFileHash *hash, char *token)
{
if (hash == NULL)
- return NULL;
+ return;
- return remove_hash_entry(hash, token);
+ remove_hash_entry(hash, token);
}
#if ENABLE_UNUSED_CODE