tracker r2262 - in branches/indexer-split: . src/libtracker-db src/tracker-indexer



Author: carlosg
Date: Thu Sep 25 10:21:46 2008
New Revision: 2262
URL: http://svn.gnome.org/viewvc/tracker?rev=2262&view=rev

Log:
2008-09-25  Carlos Garnacho  <carlos imendio com>

        * src/libtracker-db/tracker-db-index.c (tracker_db_index_open): Be
        more graceful when the index is already open.
        * src/tracker-indexer/tracker-indexer.c (check_started): Reopen the
        indexes if needed.
        (handle_metadata_add) (handle_metadata_remove): Check that the indexer
        is running and fine.
        (tracker_indexer_get_running): Check also for the "stopped" flag.
        * src/tracker-indexer/tracker-metadata.c (tracker_metadata_insert):
        Plug a potential leak.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/libtracker-db/tracker-db-index.c
   branches/indexer-split/src/tracker-indexer/tracker-indexer.c
   branches/indexer-split/src/tracker-indexer/tracker-metadata.c

Modified: branches/indexer-split/src/libtracker-db/tracker-db-index.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-index.c	(original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-index.c	Thu Sep 25 10:21:46 2008
@@ -736,7 +736,10 @@
 	priv = TRACKER_DB_INDEX_GET_PRIVATE (index);
 
 	g_return_val_if_fail (priv->filename != NULL, FALSE);
-	g_return_val_if_fail (priv->index == NULL, FALSE);
+
+	if (priv->index) {
+		return TRUE;
+	}
 
 	g_debug ("Opening index:'%s' (%s)",
 		 priv->filename,

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer.c	Thu Sep 25 10:21:46 2008
@@ -617,6 +617,10 @@
 	g_timer_destroy (indexer->private->timer);
 	indexer->private->timer = g_timer_new ();
 
+	/* Open indexes */
+	tracker_db_index_open (indexer->private->file_index);
+	tracker_db_index_open (indexer->private->email_index);
+
 	g_signal_emit (indexer, signals[STARTED], 0);
 }
 
@@ -1494,6 +1498,8 @@
 
 	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
+	check_started (indexer);
+
 	service = tracker_ontology_get_service_by_name (service_type);
 	if (!service) {
 		g_set_error (error,
@@ -1630,6 +1636,8 @@
 	guint service_id, i;
 	gchar *joined = NULL, *dirname = NULL, *basename = NULL;
 
+	check_started (indexer);
+
 	service = tracker_ontology_get_service_by_name (service_type);
 	if (!service) {
 		g_set_error (error,
@@ -2157,7 +2165,8 @@
 
 	state = indexer->private->state;
 
-	return (state & TRACKER_INDEXER_STATE_PAUSED) == 0;
+	return ((state & TRACKER_INDEXER_STATE_PAUSED) == 0 &&
+		(state & TRACKER_INDEXER_STATE_STOPPED) == 0);
 }
 
 static void

Modified: branches/indexer-split/src/tracker-indexer/tracker-metadata.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-metadata.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-metadata.c	Thu Sep 25 10:21:46 2008
@@ -84,6 +84,7 @@
 
 	if (!field) {
 		g_warning ("Field name '%s' has isn't described in the ontology", field_name);
+		g_free (value);
 		return;
 	}
 



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