[tracker/libtracker-miner] Fixed a bunch of crashers and monitor issues from the clean up



commit f3c87bae4b83f5691ca8bdea7179a5fe5309aad6
Author: Martyn Russell <martyn imendio com>
Date:   Tue Aug 4 16:49:24 2009 +0100

    Fixed a bunch of crashers and monitor issues from the clean up

 src/libtracker-miner/tracker-main.c       |    8 +++---
 src/libtracker-miner/tracker-marshal.list |    8 +----
 src/libtracker-miner/tracker-monitor.c    |   38 ++++++++++++++++-------------
 src/libtracker-miner/tracker-processor.c  |    5 +++-
 4 files changed, 31 insertions(+), 28 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-main.c b/src/libtracker-miner/tracker-main.c
index 7c89a1e..5d2ccf3 100644
--- a/src/libtracker-miner/tracker-main.c
+++ b/src/libtracker-miner/tracker-main.c
@@ -149,11 +149,11 @@ process_file_cb (TrackerProcessor *processor,
 		 GFile	          *file,
 		 gpointer          user_data)
 {
-	/* gchar *path; */
+	gchar *path;
 
-	/* path = g_file_get_path (file); */
-	/* g_print ("** PROCESSING FILE:'%s'\n", path); */
-	/* g_free (path); */
+	path = g_file_get_path (file);
+	g_print ("** PROCESSING FILE:'%s'\n", path);
+	g_free (path);
 }
 
 static gboolean
diff --git a/src/libtracker-miner/tracker-marshal.list b/src/libtracker-miner/tracker-marshal.list
index fd511d0..2032ad4 100644
--- a/src/libtracker-miner/tracker-marshal.list
+++ b/src/libtracker-miner/tracker-marshal.list
@@ -1,8 +1,4 @@
-VOID:DOUBLE,UINT,UINT,BOOL
-VOID:DOUBLE,STRING,UINT,UINT,UINT
-VOID:STRING,OBJECT,BOOLEAN
-VOID:STRING,OBJECT,OBJECT,BOOLEAN,BOOLEAN
-VOID:STRING,BOOL
+VOID:OBJECT,BOOLEAN
+VOID:OBJECT,OBJECT,BOOLEAN,BOOLEAN
 VOID:UINT,UINT,UINT,UINT
-VOID:POINTER,STRING,STRING,STRING,STRING
 BOOL:OBJECT
diff --git a/src/libtracker-miner/tracker-monitor.c b/src/libtracker-miner/tracker-monitor.c
index d9dfa23..04d35b7 100644
--- a/src/libtracker-miner/tracker-monitor.c
+++ b/src/libtracker-miner/tracker-monitor.c
@@ -137,10 +137,9 @@ tracker_monitor_class_init (TrackerMonitorClass *klass)
 			      G_SIGNAL_RUN_LAST,
 			      0,
 			      NULL, NULL,
-			      tracker_marshal_VOID__STRING_OBJECT_BOOLEAN,
+			      tracker_marshal_VOID__OBJECT_BOOLEAN,
 			      G_TYPE_NONE,
-			      3,
-			      G_TYPE_STRING,
+			      2,
 			      G_TYPE_OBJECT,
 			      G_TYPE_BOOLEAN);
 	signals[ITEM_UPDATED] =
@@ -149,10 +148,9 @@ tracker_monitor_class_init (TrackerMonitorClass *klass)
 			      G_SIGNAL_RUN_LAST,
 			      0,
 			      NULL, NULL,
-			      tracker_marshal_VOID__STRING_OBJECT_BOOLEAN,
+			      tracker_marshal_VOID__OBJECT_BOOLEAN,
 			      G_TYPE_NONE,
-			      3,
-			      G_TYPE_STRING,
+			      2,
 			      G_TYPE_OBJECT,
 			      G_TYPE_BOOLEAN);
 	signals[ITEM_DELETED] =
@@ -161,10 +159,9 @@ tracker_monitor_class_init (TrackerMonitorClass *klass)
 			      G_SIGNAL_RUN_LAST,
 			      0,
 			      NULL, NULL,
-			      tracker_marshal_VOID__STRING_OBJECT_BOOLEAN,
+			      tracker_marshal_VOID__OBJECT_BOOLEAN,
 			      G_TYPE_NONE,
-			      3,
-			      G_TYPE_STRING,
+			      2,
 			      G_TYPE_OBJECT,
 			      G_TYPE_BOOLEAN);
 	signals[ITEM_MOVED] =
@@ -173,10 +170,9 @@ tracker_monitor_class_init (TrackerMonitorClass *klass)
 			      G_SIGNAL_RUN_LAST,
 			      0,
 			      NULL, NULL,
-			      tracker_marshal_VOID__STRING_OBJECT_OBJECT_BOOLEAN_BOOLEAN,
+			      tracker_marshal_VOID__OBJECT_OBJECT_BOOLEAN_BOOLEAN,
 			      G_TYPE_NONE,
-			      5,
-			      G_TYPE_STRING,
+			      4,
 			      G_TYPE_OBJECT,
 			      G_TYPE_OBJECT,
 			      G_TYPE_BOOLEAN,
@@ -592,6 +588,9 @@ libinotify_event_pairs_timeout_cb (gpointer data)
 			 GPOINTER_TO_UINT (key),
 			 seconds);
 
+		is_directory = 
+			g_file_query_file_type (event->file, G_FILE_QUERY_INFO_NONE, NULL) == G_FILE_TYPE_DIRECTORY;
+
 		switch (event->event_type) {
 		case IN_MOVED_FROM:
 		case IN_DELETE:
@@ -717,6 +716,9 @@ libinotify_cached_events_timeout_cb (gpointer data)
 		last_event_seconds = now.tv_sec - event->last_time.tv_sec;
 		start_event_seconds = now.tv_sec - event->start_time.tv_sec;
 
+		is_directory = 
+			g_file_query_file_type (event->file, G_FILE_QUERY_INFO_NONE, NULL) == G_FILE_TYPE_DIRECTORY;
+
 		g_debug ("Comparing now:%ld to then:%ld (start:%ld), diff:%ld (with start:%ld)",
 			 now.tv_sec,
 			 event->last_time.tv_sec,
@@ -894,6 +896,9 @@ libinotify_monitor_event_cb (INotifyHandle *handle,
 		str2 = NULL;
 	}
 
+	is_directory = 
+		g_file_query_file_type (file, G_FILE_QUERY_INFO_NONE, NULL) == G_FILE_TYPE_DIRECTORY;
+
 	event_type_str = libinotify_monitor_event_to_string (event_type);
 	g_message ("Received monitor event:%d->'%s' for file:'%s' (cookie:%d)",
 		   event_type,
@@ -1297,9 +1302,8 @@ gboolean
 tracker_monitor_remove (TrackerMonitor *monitor,
 			GFile          *file)
 {
-	GHashTable *monitors;
-	gchar      *path;
-	gboolean    removed;
+	gchar *path;
+	gboolean removed;
 
 	g_return_val_if_fail (TRACKER_IS_MONITOR (monitor), FALSE);
 	g_return_val_if_fail (G_IS_FILE (file), FALSE);
@@ -1309,12 +1313,12 @@ tracker_monitor_remove (TrackerMonitor *monitor,
 		return FALSE;
 	}
 	
-	removed = g_hash_table_remove (monitors, file);
+	removed = g_hash_table_remove (monitor->private->monitors, file);
 	path = g_file_get_path (file);
 	
 	g_debug ("Removed monitor for path:'%s', total monitors:%d",
 		 path,
-		 g_hash_table_size (monitors));
+		 g_hash_table_size (monitor->private->monitors));
 	
 	g_free (path);
 
diff --git a/src/libtracker-miner/tracker-processor.c b/src/libtracker-miner/tracker-processor.c
index dd135fb..a14d0a5 100644
--- a/src/libtracker-miner/tracker-processor.c
+++ b/src/libtracker-miner/tracker-processor.c
@@ -222,10 +222,11 @@ tracker_processor_init (TrackerProcessor *object)
 
 	priv = object->private;
 
+	tracker_module_config_init ();
+
 	/* For each module we create a TrackerCrawler and keep them in
 	 * a hash table to look up.
 	 */
-
 	priv->items_created = g_queue_new ();
 	priv->items_updated = g_queue_new ();
 	priv->items_deleted = g_queue_new ();
@@ -518,6 +519,8 @@ monitor_item_updated_cb (TrackerMonitor *monitor,
 	gchar *path;
 	gboolean should_process = TRUE;
 
+	processor = user_data;
+
 	g_signal_emit (processor, signals[CHECK_FILE], 0, file, &should_process);
 
 	path = g_file_get_path (file);



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