/** * Helper routine for etree_free() to free up each item. */ static void etree_item_free(void *item, void *data) { free_fn_t fcb = cast_pointer_to_func(data); (*fcb)(item); }
static void hash_list_freecb_wrapper(void *data, void *user_data) { free_fn_t freecb = cast_pointer_to_func(user_data); struct hash_list_item *item = data; (*freecb)(deconstify_pointer(item->key)); item->key = NULL; }
static int sort_wrapper(const void *a, const void *b, void *data) { cmp_fn_t func = (cmp_fn_t) cast_pointer_to_func(data); const struct hash_list_item *ha = a; const struct hash_list_item *hb = b; return (*func)(ha->key, hb->key); }
static void uploads_func_helper(GtkTreeModel *model, GtkTreePath *unused_path, GtkTreeIter *iter, gpointer data) { upload_row_data_t *d = NULL; GFunc func = cast_pointer_to_func(data); (void) unused_path; gtk_tree_model_get(model, iter, c_ul_data, &d, (-1)); g_assert(NULL != d); (*func)(d, NULL); }
static void list_freecb_wrapper(void *data, void *user_data) { list_destroy_cb freecb = cast_pointer_to_func(user_data); (*freecb)(data); }