summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-11-25 13:53:22 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-07-20 18:27:32 +0200
commit10915fd2ab785c75f9ef28fa35e24689db7faf37 (patch)
treef774c8007ebf640d8b340e7710a1606318da2ef5
parent683035a5fd4585ae8cfb30ed9acbcefd43fd0ba1 (diff)
downloadtracker-10915fd2ab785c75f9ef28fa35e24689db7faf37.tar.gz
tracker-store: Give ownership of writeback events on get_ready()
Instead of doing get_ready() and then reset_ready(), just give ownership of the events hashtable on get_ready() while resetting the internal one.
-rw-r--r--src/tracker-store/tracker-resources.vala2
-rw-r--r--src/tracker-store/tracker-writeback.c10
-rw-r--r--src/tracker-store/tracker-writeback.vapi3
3 files changed, 9 insertions, 6 deletions
diff --git a/src/tracker-store/tracker-resources.vala b/src/tracker-store/tracker-resources.vala
index 9d9b83c18..2dbd1c00b 100644
--- a/src/tracker-store/tracker-resources.vala
+++ b/src/tracker-store/tracker-resources.vala
@@ -263,8 +263,6 @@ public class Tracker.Resources : Object {
writeback (builder.end ());
}
- Tracker.Writeback.reset_ready ();
-
signal_timeout = 0;
return false;
}
diff --git a/src/tracker-store/tracker-writeback.c b/src/tracker-store/tracker-writeback.c
index a183b00a3..5bba19020 100644
--- a/src/tracker-store/tracker-writeback.c
+++ b/src/tracker-store/tracker-writeback.c
@@ -115,9 +115,14 @@ tracker_writeback_reset_ready ()
GHashTable *
tracker_writeback_get_ready (void)
{
+ GHashTable *events;
+
g_return_val_if_fail (private != NULL, NULL);
- return private->ready_events;
+ events = private->ready_events;
+ private->ready_events = NULL;
+
+ return events;
}
static void
@@ -214,7 +219,8 @@ tracker_writeback_shutdown (void)
/* Perhaps hurry an emit of the ready events here? We're shutting down,
* so I guess we're not required to do that here ... ? */
- tracker_writeback_reset_ready ();
+ g_clear_pointer (&private->ready_events,
+ (GDestroyNotify) g_hash_table_unref);
free_private (private);
private = NULL;
diff --git a/src/tracker-store/tracker-writeback.vapi b/src/tracker-store/tracker-writeback.vapi
index 368de0303..7c48512b8 100644
--- a/src/tracker-store/tracker-writeback.vapi
+++ b/src/tracker-store/tracker-writeback.vapi
@@ -26,9 +26,8 @@ namespace Tracker {
public void init (Tracker.Data.Manager data_manager, WritebackGetPredicatesFunc callback);
public void shutdown ();
public void check (int graph_id, string graph, int subject_id, string subject, int pred_id, int object_id, string object, GLib.PtrArray rdf_types);
- public unowned GLib.HashTable<int, GLib.Array<int>> get_ready ();
+ public GLib.HashTable<int, GLib.Array<int>> get_ready ();
public void reset_pending ();
- public void reset_ready ();
public void transact ();
}
}