[gthumb] Fixed crash when browsing folder with images and videos
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] Fixed crash when browsing folder with images and videos
- Date: Wed, 7 Feb 2018 17:09:39 +0000 (UTC)
commit b2c60b193574b8210c1341cc1733a536ec607be4
Author: Paolo Bacchilega <paobac src gnome org>
Date: Wed Feb 7 18:06:13 2018 +0100
Fixed crash when browsing folder with images and videos
Check whether the viewer is still active after getting
the color profile.
[bug #760214]
extensions/image_viewer/gth-image-viewer-page.c | 32 ++++++++++++++--------
1 files changed, 20 insertions(+), 12 deletions(-)
---
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index ddeb35d..17b61b4 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -259,22 +259,27 @@ profile_ready_cb (GObject *source_object,
{
ProfileData *profile_data = user_data;
GthImageViewerPage *self = profile_data->self;
- GthICCProfile *profile;
- profile = gth_color_manager_get_profile_finish (GTH_COLOR_MANAGER (source_object), res, NULL);
- if (profile == NULL)
- profile = _g_object_ref (gth_browser_get_monitor_profile (self->priv->browser));
- gth_image_preloader_set_out_profile (self->priv->preloader, profile);
+ if (self->priv->active) {
+ GthICCProfile *profile;
+
+ profile = gth_color_manager_get_profile_finish (GTH_COLOR_MANAGER (source_object), res, NULL);
+ if (profile == NULL)
+ profile = _g_object_ref (gth_browser_get_monitor_profile (self->priv->browser));
+ gth_image_preloader_set_out_profile (self->priv->preloader, profile);
- _gth_image_viewer_page_load_with_preloader_step2 (profile_data->self,
- profile_data->file_data,
- profile_data->requested_size,
- profile_data->cancellable,
- profile_data->callback,
- profile_data->user_data);
+ _gth_image_viewer_page_load_with_preloader_step2 (profile_data->self,
+ profile_data->file_data,
+ profile_data->requested_size,
+ profile_data->cancellable,
+ profile_data->callback,
+ profile_data->user_data);
+
+ _g_object_unref (profile);
+ }
- _g_object_unref (profile);
profile_data_free (profile_data);
+ g_object_unref (res);
}
@@ -1416,6 +1421,7 @@ gth_image_viewer_page_real_view (GthViewerPage *base,
self = (GthImageViewerPage*) base;
g_return_if_fail (file_data != NULL);
+ g_return_if_fail (self->priv->active);
gth_viewer_page_focus (GTH_VIEWER_PAGE (self));
@@ -2389,6 +2395,8 @@ gth_image_viewer_page_apply_icc_profile (GthImageViewerPage *self,
{
GthFileData *file_data;
+ g_return_if_fail (self->priv->active);
+
self->priv->apply_icc_profile = apply;
gth_image_preloader_clear_cache (self->priv->preloader);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]