Add yet a patch from upstream stable git OBS-URL: https://build.opensuse.org/request/show/668724 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/epiphany?expand=0&rev=307
68 lines
2.1 KiB
Diff
68 lines
2.1 KiB
Diff
From d571984e24c0a24fd1d09da4341f79eea7286723 Mon Sep 17 00:00:00 2001
|
|
From: Michael Catanzaro <mcatanzaro@igalia.com>
|
|
Date: Mon, 7 Jan 2019 19:38:22 +0000
|
|
Subject: [PATCH] bookmark: ensure tags sequence is always created
|
|
|
|
Somehow we are getting EphyBookmarks objects deserialized without
|
|
initializing the tags property. I'm not sure how this happens. It even
|
|
happens for JSON corresponding to bookmarks that definitely have tags
|
|
set. Anyway, ephy_bookmark_get_tags() is used as if the result is not
|
|
nullable, so let's guarantee this and return an empty list instead in
|
|
this case.
|
|
|
|
This is a speculative fix for #612. It should fix the reported crash,
|
|
but it's possible it will only uncover a subsequent crash.
|
|
|
|
|
|
(cherry picked from commit 672cffa5ec652a5d5f7d98d0e0664408d58dcf8c)
|
|
---
|
|
src/bookmarks/ephy-bookmark.c | 10 ++++++----
|
|
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/bookmarks/ephy-bookmark.c b/src/bookmarks/ephy-bookmark.c
|
|
index 43619a4ef..514a54aec 100644
|
|
--- a/src/bookmarks/ephy-bookmark.c
|
|
+++ b/src/bookmarks/ephy-bookmark.c
|
|
@@ -99,9 +99,10 @@ ephy_bookmark_set_property (GObject *object,
|
|
ephy_bookmark_set_url (self, g_value_get_string (value));
|
|
break;
|
|
case PROP_TAGS:
|
|
- if (self->tags != NULL)
|
|
- g_sequence_free (self->tags);
|
|
+ g_sequence_free (self->tags);
|
|
self->tags = g_value_get_pointer (value);
|
|
+ if (!self->tags)
|
|
+ self->tags = g_sequence_new (g_free);
|
|
break;
|
|
case PROP_TYPE:
|
|
g_free (self->type);
|
|
@@ -176,8 +177,7 @@ ephy_bookmark_finalize (GObject *object)
|
|
g_free (self->title);
|
|
g_free (self->id);
|
|
|
|
- if (self->tags)
|
|
- g_sequence_free (self->tags);
|
|
+ g_sequence_free (self->tags);
|
|
|
|
G_OBJECT_CLASS (ephy_bookmark_parent_class)->finalize (object);
|
|
}
|
|
@@ -279,6 +279,7 @@ ephy_bookmark_class_init (EphyBookmarkClass *klass)
|
|
static void
|
|
ephy_bookmark_init (EphyBookmark *self)
|
|
{
|
|
+ self->tags = g_sequence_new (g_free);
|
|
}
|
|
|
|
EphyBookmark *
|
|
@@ -456,6 +457,7 @@ GSequence *
|
|
ephy_bookmark_get_tags (EphyBookmark *self)
|
|
{
|
|
g_assert (EPHY_IS_BOOKMARK (self));
|
|
+ g_assert (self->tags);
|
|
|
|
return self->tags;
|
|
}
|
|
--
|
|
2.18.1
|
|
|