[file-roller] crash when opening multi-volumes rar archives
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [file-roller] crash when opening multi-volumes rar archives
- Date: Tue, 2 Oct 2012 19:09:15 +0000 (UTC)
commit 8ab23e584401943be45fc3e4484e34170bd7d0c9
Author: Paolo Bacchilega <paobac src gnome org>
Date: Tue Oct 2 21:07:30 2012 +0200
crash when opening multi-volumes rar archives
[bug #685314]
src/fr-archive.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/src/fr-archive.c b/src/fr-archive.c
index e90ce84..55efebe 100644
--- a/src/fr-archive.c
+++ b/src/fr-archive.c
@@ -127,7 +127,8 @@ static guint fr_archive_signals[LAST_SIGNAL] = { 0 };
static void
_fr_archive_set_file (FrArchive *self,
- GFile *file)
+ GFile *file,
+ gboolean reset_mime_type)
{
if (self->priv->file != NULL) {
g_object_unref (self->priv->file);
@@ -136,7 +137,8 @@ _fr_archive_set_file (FrArchive *self,
if (file != NULL)
self->priv->file = g_object_ref (file);
- self->mime_type = NULL;
+ if (reset_mime_type)
+ self->mime_type = NULL;
g_object_notify (G_OBJECT (self), "file");
}
@@ -149,7 +151,7 @@ _fr_archive_set_uri (FrArchive *self,
GFile *file;
file = (uri != NULL) ? g_file_new_for_uri (uri) : NULL;
- _fr_archive_set_file (self, file);
+ _fr_archive_set_file (self, file, TRUE);
_g_object_unref (file);
}
@@ -167,7 +169,7 @@ fr_archive_set_property (GObject *object,
switch (property_id) {
case PROP_FILE:
- _fr_archive_set_file (self, g_value_get_object (value));
+ _fr_archive_set_file (self, g_value_get_object (value), TRUE);
break;
case PROP_MIME_TYPE:
fr_archive_set_mime_type (self, g_value_get_string (value));
@@ -1910,7 +1912,7 @@ fr_archive_set_multi_volume (FrArchive *self,
GFile *file)
{
self->multi_volume = TRUE;
- _fr_archive_set_file (self, file);
+ _fr_archive_set_file (self, file, FALSE);
}
@@ -1926,7 +1928,7 @@ fr_archive_change_name (FrArchive *archive,
parent = g_file_get_parent (archive->priv->file);
file = g_file_get_child (parent, name);;
- _fr_archive_set_file (archive, file);
+ _fr_archive_set_file (archive, file, FALSE);
g_object_unref (parent);
g_object_unref (file);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]