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 gboolean get_providers_finish_default (GoaProviderFactory *factory, GList **out_providers, GAsyncResult *result, GError **error) { GTask *task; GList *providers; gboolean had_error; g_return_val_if_fail (g_task_is_valid (result, factory), FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); task = G_TASK (result); /* Workaround for bgo#764163 */ had_error = g_task_had_error (task); providers = g_task_propagate_pointer (task, error); if (had_error) return FALSE; if (out_providers != NULL) { *out_providers = providers; providers = NULL; } g_list_free_full (providers, g_object_unref); return TRUE; }
gboolean gdav_options_finish (SoupSession *session, GAsyncResult *result, GDavAllow *out_allow, GDavOptions *out_options, SoupMessage **out_message, GError **error) { AsyncContext *async_context; g_return_val_if_fail ( g_task_is_valid (result, session), FALSE); g_return_val_if_fail ( g_async_result_is_tagged (result, gdav_options), FALSE); async_context = g_task_get_task_data (G_TASK (result)); if (!g_task_had_error (G_TASK (result))) { if (out_allow != NULL) *out_allow = async_context->allow; if (out_options != NULL) *out_options = async_context->options; } /* SoupMessage is set even in case of error for uses * like calling soup_message_get_https_status() when * SSL/TLS negotiation fails, though SoupMessage may * be NULL if the Request-URI was invalid. */ if (out_message != NULL) { *out_message = async_context->message; async_context->message = NULL; } return g_task_propagate_boolean (G_TASK (result), error); }
static GTlsInteractionResult mock_interaction_ask_password_finish (GTlsInteraction *interaction, GAsyncResult *result, GError **error) { g_return_val_if_fail (g_task_is_valid (result, interaction), G_TLS_INTERACTION_UNHANDLED); if (g_task_had_error (G_TASK (result))) { g_task_propagate_boolean (G_TASK (result), error); return G_TLS_INTERACTION_FAILED; } else return G_TLS_INTERACTION_HANDLED; }