[tracker] libtracker-data: Reuse resource_cache and resources in update buffer



commit 5c77cc0cf94b6f2055549a0460fb6ef03236faab
Author: Jürg Billeter <j bitron ch>
Date:   Wed Dec 16 15:22:05 2009 +0100

    libtracker-data: Reuse resource_cache and resources in update buffer

 src/libtracker-data/tracker-data-update.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index d51b6c3..68a2048 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -1903,8 +1903,11 @@ tracker_data_begin_transaction (void)
 
 	resource_time = time (NULL);
 
-	update_buffer.resource_cache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-	update_buffer.resources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) resource_buffer_free);
+	if (update_buffer.resource_cache == NULL) {
+		update_buffer.resource_cache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+		update_buffer.resources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) resource_buffer_free);
+	}
+
 	resource_buffer = NULL;
 	if (blank_buffer.table == NULL) {
 		blank_buffer.table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
@@ -1945,8 +1948,8 @@ tracker_data_commit_transaction (void)
 
 	tracker_db_interface_end_transaction (iface);
 
-	g_hash_table_unref (update_buffer.resources);
-	g_hash_table_unref (update_buffer.resource_cache);
+	g_hash_table_remove_all (update_buffer.resources);
+	g_hash_table_remove_all (update_buffer.resource_cache);
 
 	if (commit_callbacks) {
 		guint n;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]