Modify parameters in g_list_find_custom 18/91618/1 accepted/tizen/common/20161011.061132 accepted/tizen/ivi/20161011.234027 accepted/tizen/mobile/20161011.234009 accepted/tizen/tv/20161011.234018 accepted/tizen/wearable/20161011.233953 submit/tizen/20161011.002253
authorseungha.son <seungha.son@samsung.com>
Mon, 10 Oct 2016 10:49:02 +0000 (19:49 +0900)
committerseungha.son <seungha.son@samsung.com>
Mon, 10 Oct 2016 10:51:42 +0000 (19:51 +0900)
 - Adds type casting of compare function
 - Modified list parameter because this parameter must point to the top
 of the list

Signed-off-by: seungha.son <seungha.son@samsung.com>
Change-Id: I001f52cb090f1043c2a16a696afce78858c8dd46

src/badge_internal.c

index e85fe0f..2d55856 100755 (executable)
@@ -1078,7 +1078,7 @@ static gint _badge_data_compare(gconstpointer a, gconstpointer b)
 
        if (!a)
                return -1;
-       bd = a;
+       bd = (struct _badge_cb_data *)a;
 
        if (bd->callback == b)
                return 0;
@@ -1112,8 +1112,8 @@ int _badge_register_changed_cb(badge_change_cb callback, void *data, uid_t uid)
                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;
@@ -1150,8 +1150,8 @@ int _badge_unregister_changed_cb(badge_change_cb callback, uid_t uid)
        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);