The unified diff between revisions [36cf2167..] and [30d555c4..] is displayed below. It can also be downloaded as a raw diff.
#
#
# patch "sqlite-backend.c"
# from [4be9ea4621c58f7736a6fa49103d27643c14a946]
# to [0946a508d2831f62ee1d1c7784d62b1eaef7f1b0]
#
============================================================
--- sqlite-backend.c 4be9ea4621c58f7736a6fa49103d27643c14a946
+++ sqlite-backend.c 0946a508d2831f62ee1d1c7784d62b1eaef7f1b0
@@ -449,6 +449,12 @@ set_value_in_directory (SqliteSource *ss
rv = FALSE;
break;
}
+ /* if there was a value in the past, clean up any possible
+ * lists or pair. This could be more elegant, but this way is
+ * the best; it's slower (eg. might do a pair of DELETEs we don't need)
+ * but it does mean that there's no chance of us leaving a
+ * pair or list dangling by mistake
+ */
if (get_value_id_in_directory (ss, dir, name, &existing_id)) {
if (!delete_old_list (ss, existing_id)) {
rv = FALSE;