/**
* \brief private destructor for one hash element.
+ * Crashing? go one frame up and do 'print *FreeMe->LookupTable[i]'
* \param Data an element to free using the user provided destructor, or just plain free
*/
static void DeleteHashPayload (Payload *Data)
free(Data->Data);
}
+/**
+ * \brief Destructor for nested hashes
+ */
+void HDeleteHash(void *vHash)
+{
+ HashList *FreeMe = (HashList*)vHash;
+ DeleteHash(&FreeMe);
+}
+
/**
* \brief destroy a hashlist and all of its members
+ * Crashing? do 'print *FreeMe->LookupTable[i]'
* \param Hash Hash to destroy. Is NULL'ed so you are shure its done.
*/
void DeleteHash(HashList **Hash)
* \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;
free(ptr);
}
+/*
+ * Generic function to free a reference.
+ * since a reference actualy isn't needed to be freed, do nothing.
+ */
+void reference_free_handler(void *ptr)
+{
+ 1;
+}
+