Exemplo n.º 1
0
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;
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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;
}