foo = Hash->LookupTable[i]->HashKey;
if (First != NULL)
bar = First(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+ else
+ bar = "";
if (Second != NULL)
bla = Second(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+ else
+ bla = "";
}
#ifdef DEBUG
printf (" ---- Hashkey[%ld][%ld]: '%s' Value: '%s' ; %s\n", i, key, foo, bar, bla);
* \param Data returns the Data found at HashPos
* \returns whether the item was found or not.
*/
-int GetNextHashPos(HashList *Hash, HashPos *At, long *HKLen, char **HashKey, void **Data)
+int GetNextHashPos(HashList *Hash, HashPos *At, long *HKLen, const char **HashKey, void **Data)
{
long PayloadPos;
* return strcmp (a, b);
* }
*/
+
+
+/*
+ * Generic function to free a pointer. This can be used as a callback with the
+ * hash table, even on systems where free() is defined as a macro or has had other
+ * horrible things done to it.
+ */
+void generic_free_handler(void *ptr) {
+ free(ptr);
+}
+
+
+