static void on_sliced_image_loaded (GObject *source_object, GAsyncResult *res, gpointer user_data) { GObject *cache = source_object; AsyncImageData *data = (AsyncImageData *)user_data; GTask *task = G_TASK (res); GList *list, *pixbufs; if (g_task_had_error (task)) return; pixbufs = g_task_propagate_pointer (task, NULL); for (list = pixbufs; list; list = list->next) { ClutterActor *actor = load_from_pixbuf (GDK_PIXBUF (list->data)); clutter_actor_hide (actor); clutter_actor_add_child (data->actor, actor); } g_list_free_full (pixbufs, g_object_unref); if (data->load_callback != NULL) data->load_callback (cache, data->load_callback_data); }
static void on_sliced_image_loaded (GObject *source_object, GAsyncResult *res, gpointer user_data) { AsyncImageData *data = (AsyncImageData *)user_data; GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res); GList *list; if (g_simple_async_result_propagate_error (simple, NULL)) return; for (list = g_simple_async_result_get_op_res_gpointer (simple); list; list = g_list_next (list)) { ClutterActor *actor = load_from_pixbuf (GDK_PIXBUF (list->data)); clutter_actor_hide (actor); clutter_actor_add_child (data->actor, actor); } }