if (!a)
return -1;
- bd = a;
+ bd = (struct _badge_cb_data *)a;
if (bd->callback == b)
return 0;
badge_cb_list = g_list_append(badge_cb_list, bd);
g_hash_table_insert(_badge_cb_hash, GUINT_TO_POINTER(uid), badge_cb_list);
} else {
- badge_found_list = g_list_find_custom(badge_cb_list, (gconstpointer)callback,
- _badge_data_compare);
+ badge_found_list = g_list_find_custom(g_list_first(badge_cb_list), (gconstpointer)callback,
+ (GCompareFunc)_badge_data_compare);
if (badge_found_list) {
bd = g_list_nth_data(badge_found_list, 0);
bd->data = data;
if (badge_cb_list == NULL)
return BADGE_ERROR_INVALID_PARAMETER;
- badge_delete_list = g_list_find_custom(badge_cb_list, (gconstpointer)callback,
- _badge_data_compare);
+ badge_delete_list = g_list_find_custom(g_list_first(badge_cb_list), (gconstpointer)callback,
+ (GCompareFunc)_badge_data_compare);
if (badge_delete_list) {
bd = g_list_nth_data(badge_delete_list, 0);