static void load_pixbuf_thread (GSimpleAsyncResult *result, GObject *object, GCancellable *cancellable) { GdkPixbuf *pixbuf; AsyncTextureLoadData *data; GError *error = NULL; data = g_async_result_get_user_data (G_ASYNC_RESULT (result)); g_assert (data != NULL); if (data->uri) pixbuf = impl_load_pixbuf_file (data->uri, data->width, data->height, &error); else if (data->icon_info) pixbuf = impl_load_pixbuf_gicon (data->icon_info, data->width, data->colors, &error); else g_assert_not_reached (); if (error != NULL) { g_simple_async_result_set_from_error (result, error); return; } if (pixbuf) g_simple_async_result_set_op_res_gpointer (result, g_object_ref (pixbuf), g_object_unref); }
static void load_pixbuf_thread (GSimpleAsyncResult *result, GObject *object, GCancellable *cancellable) { GdkPixbuf *pixbuf; AsyncIconLookupData *data; GError *error = NULL; data = g_object_get_data (G_OBJECT (result), "load_pixbuf_async"); g_assert (data != NULL); if (data->thumbnail) { const char *uri; const char *mimetype; if (data->recent_info) { uri = gtk_recent_info_get_uri (data->recent_info); mimetype = gtk_recent_info_get_mime_type (data->recent_info); } else { uri = data->uri; mimetype = data->mimetype; } pixbuf = impl_load_thumbnail (data->cache, uri, mimetype, data->width, &error); } else if (data->uri) pixbuf = impl_load_pixbuf_file (data->uri, data->width, data->height, &error); else if (data->icon) pixbuf = impl_load_pixbuf_gicon (data->icon, data->icon_info, data->width, &error); else g_assert_not_reached (); if (error != NULL) { g_simple_async_result_set_from_error (result, error); return; } if (pixbuf) g_simple_async_result_set_op_res_gpointer (result, g_object_ref (pixbuf), g_object_unref); }