[frogr] Fixed segmentation fault because of using GAppInfo stuff
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Fixed segmentation fault because of using GAppInfo stuff
- Date: Sun, 17 Jul 2011 20:30:39 +0000 (UTC)
commit 30d6dae6d4418dd58a48de884144fa04fdfbda7b
Author: Mario Sanchez Prada <msanchez igalia com>
Date: Sun Jul 17 22:00:52 2011 +0200
Fixed segmentation fault because of using GAppInfo stuff
src/frogr-details-dialog.c | 9 +++++++--
src/frogr-main-view.c | 9 +++++++--
src/frogr-util.c | 3 ++-
3 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index bc394b3..db2117f 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -1198,11 +1198,16 @@ _on_picture_button_clicked (GtkButton *button, gpointer data)
FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
GSList *current_pic = NULL;
GList *uris_list = NULL;
+ FrogrPicture *picture = NULL;
+ gchar *fileuri = NULL;
for (current_pic = priv->pictures; current_pic; current_pic = g_slist_next (current_pic))
{
- FrogrPicture *picture = FROGR_PICTURE (current_pic->data);
- uris_list = g_list_append (uris_list, (gchar*) frogr_picture_get_fileuri (picture));
+ picture = FROGR_PICTURE (current_pic->data);
+ fileuri = g_strdup (frogr_picture_get_fileuri (picture));
+
+ /* Dupped uris in the GList must NOT be freed here */
+ uris_list = g_list_append (uris_list, fileuri);
}
frogr_util_open_images_in_viewer (uris_list);
diff --git a/src/frogr-main-view.c b/src/frogr-main-view.c
index 90613e0..9c5cf81 100644
--- a/src/frogr-main-view.c
+++ b/src/frogr-main-view.c
@@ -987,6 +987,8 @@ _open_pictures_in_external_viewer (FrogrMainView *self)
GSList *pictures = NULL;
GSList *current_pic = NULL;
GList *uris_list = NULL;
+ FrogrPicture *picture = NULL;
+ gchar *fileuri = NULL;
if (!_pictures_selected_required_check (self))
return;
@@ -994,8 +996,11 @@ _open_pictures_in_external_viewer (FrogrMainView *self)
pictures = _get_selected_pictures (self);
for (current_pic = pictures; current_pic; current_pic = g_slist_next (current_pic))
{
- FrogrPicture *picture = FROGR_PICTURE (current_pic->data);
- uris_list = g_list_append (uris_list, (gchar*) frogr_picture_get_fileuri (picture));
+ picture = FROGR_PICTURE (current_pic->data);
+ fileuri = g_strdup (frogr_picture_get_fileuri (picture));
+
+ /* Dupped uris in the GList must NOT be freed here */
+ uris_list = g_list_append (uris_list, fileuri);
}
g_slist_foreach (pictures, (GFunc) g_object_unref, NULL);
g_slist_free (pictures);
diff --git a/src/frogr-util.c b/src/frogr-util.c
index 1b580b0..3b7a5e8 100644
--- a/src/frogr-util.c
+++ b/src/frogr-util.c
@@ -175,7 +175,8 @@ frogr_util_open_uri (const gchar *uri)
if (!uri)
return;
- uris_list = g_list_append (uris_list, (gchar *) uri);
+ /* Dupped uris in the GList must NOT be freed here */
+ uris_list = g_list_append (uris_list, g_strdup (uri));
app_info = g_app_info_get_default_for_uri_scheme ("http");
_open_uris_with_app_info (uris_list, app_info);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]