From 821d28024bf2bc4287163f5001fb902820933e37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Mon, 5 Nov 2018 17:15:32 -0600
Subject: [PATCH 230/682] bookmarkfile: Don't move an item if the uri has not
 changed

This was causing a crash, because we were first removing an item, freeing
both the instance itself and the key, and then trying to reuse those.

So, in this case, instead of reassigning an item, we can just return TRUE
as we have already the item at the right place, while it's not needed to
update the modified timestamp, since no modification happened in reality.

Fixes #1588
---
 glib/gbookmarkfile.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c
index ffd7ea0b1..f75f261b1 100644
--- a/glib/gbookmarkfile.c
+++ b/glib/gbookmarkfile.c
@@ -3584,6 +3584,9 @@ g_bookmark_file_move_item (GBookmarkFile  *bookmark,
 
   if (new_uri && new_uri[0] != '\0')
     {
+      if (g_strcmp0 (old_uri, new_uri) == 0)
+        return TRUE;
+
       if (g_bookmark_file_has_item (bookmark, new_uri))
         {
           if (!g_bookmark_file_remove_item (bookmark, new_uri, error))
-- 
2.19.1

