[tracker/tracker-0.6] Don't change the mode in indexer if same as current mode



commit c969a2a7bbe06b96541a46d6bf6335de9f9165ab
Author: Martyn Russell <martyn imendio com>
Date:   Fri Jun 5 11:25:07 2009 +0100

    Don't change the mode in indexer if same as current mode
---
 src/tracker-indexer/tracker-indexer.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/tracker-indexer/tracker-indexer.c b/src/tracker-indexer/tracker-indexer.c
index 98b6422..59492b4 100644
--- a/src/tracker-indexer/tracker-indexer.c
+++ b/src/tracker-indexer/tracker-indexer.c
@@ -116,6 +116,7 @@ struct TrackerIndexerPrivate {
 	GQuark current_module;
 	GHashTable *indexer_modules;
 
+	gchar *db_mode;
 	gchar *db_dir;
 
 	TrackerDBIndex *file_index;
@@ -627,6 +628,8 @@ tracker_indexer_finalize (GObject *object)
 	 */
 	stop_scheduled_flush (TRACKER_INDEXER (object));
 
+	g_free (priv->db_mode);
+
 	if (priv->pause_for_duration_id) {
 		g_source_remove (priv->pause_for_duration_id);
 	}
@@ -3671,6 +3674,11 @@ set_profile (TrackerIndexer *indexer,
 
 	priv = indexer->private;
 
+	if (g_strcmp0 (profile_name, priv->db_mode) != 0) {
+		g_free (priv->db_mode);
+		priv->db_mode = g_strdup (profile_name);
+	}
+
 	if (tracker_config_get_low_memory_mode (priv->config)) {
 		flags |= TRACKER_DB_MANAGER_LOW_MEMORY_MODE;
 	}
@@ -3681,14 +3689,20 @@ set_profile (TrackerIndexer *indexer,
 	/* Reinitialize DB Manager with new profile */
 	tracker_db_manager_shutdown ();
 
-	if (!tracker_db_manager_init (flags, NULL, FALSE, profile_name)) {
+	if (!tracker_db_manager_init (flags, NULL, FALSE, priv->db_mode)) {
 		g_critical ("Could not restart DB manager, trying again with defaults");
 
 		if (!tracker_db_manager_init (flags, NULL, FALSE, NULL)) {
-			g_critical ("  Not even defaults worked, bailing out.");
+			g_critical ("Not even defaults worked, bailing out.");
 			g_assert_not_reached ();
 		}
 
+		/* Reset this if we could get things working with no
+		 * profile set.
+		 */
+		g_free (priv->db_mode);
+		priv->db_mode = NULL;
+
 		return_val = FALSE;
 	}
 



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