return data;
}
+static void skiplisti_destroy(void *vsl)
+{
+ skiplist_destroy((Skiplist *) vsl, NULL);
+ skiplist_free((Skiplist *) vsl, vsl);
+}
+
+void skiplist_destroy(Skiplist *sl, FreeFunc myfree)
+{
+ while (skiplist_pop(sl->index, skiplisti_destroy) != NULL)
+ ;
+ skiplist_remove_all(sl, myfree);
+}
+
Skiplist *skiplist_merge(Skiplist *sl1, Skiplist *sl2)
{
/* Check integrity! */
void skiplist_remove_all(Skiplist *sl, FreeFunc myfree);
+void skiplist_destroy(Skiplist *sl, FreeFunc myfree);
+
#if 0
int skiplisti_find_compare(Skiplist *sl,
void *data,