[tracker/libtracker-miner] Fixed a bunch of crashers and monitor issues from the clean up
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/libtracker-miner] Fixed a bunch of crashers and monitor issues from the clean up
- Date: Tue, 4 Aug 2009 16:51:31 +0000 (UTC)
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]