[tracker/tracker-0.6] Bug 112133 - trackerd-11-1386.rcore.lzo crashed
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-0.6] Bug 112133 - trackerd-11-1386.rcore.lzo crashed
- Date: Thu, 21 May 2009 10:06:59 -0400 (EDT)
commit afdc3ad118eea43fb6ced0125b4df7a3b8829fa9
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu May 21 16:00:38 2009 +0200
Bug 112133 - trackerd-11-1386.rcore.lzo crashed
Normalize mount point paths in TrackerProcessor, so they're removed properly,
and the processor doesn't think there are still pending removable media to
inspect.
---
src/trackerd/tracker-processor.c | 29 ++++++++++++++++++++++-------
1 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/src/trackerd/tracker-processor.c b/src/trackerd/tracker-processor.c
index 3b6ae70..e453ed5 100644
--- a/src/trackerd/tracker-processor.c
+++ b/src/trackerd/tracker-processor.c
@@ -1506,6 +1506,16 @@ crawler_finished_cb (TrackerCrawler *crawler,
#ifdef HAVE_HAL
+static gchar *
+normalize_mount_point (const gchar *mount_point)
+{
+ if (g_str_has_suffix (mount_point, G_DIR_SEPARATOR_S)) {
+ return g_strdup (mount_point);
+ } else {
+ return g_strconcat (mount_point, G_DIR_SEPARATOR_S, NULL);
+ }
+}
+
void
tracker_processor_mount_point_added (TrackerProcessor *processor,
const gchar *udi,
@@ -1514,20 +1524,21 @@ tracker_processor_mount_point_added (TrackerProcessor *processor,
TrackerProcessorPrivate *priv;
TrackerStatus status;
GList *l;
+ gchar *mp;
g_return_if_fail (TRACKER_IS_PROCESSOR (processor));
priv = processor->private;
status = tracker_status_get ();
+ mp = normalize_mount_point (mount_point);
/* Add removable device to list of known devices to iterate */
- priv->removable_devices = g_list_append (priv->removable_devices,
- g_strdup (mount_point));
+ priv->removable_devices = g_list_append (priv->removable_devices, mp);
/* Remove from completed list so we don't ignore it */
- l = g_list_find_custom (priv->removable_devices_completed,
- mount_point,
+ l = g_list_find_custom (priv->removable_devices_completed,
+ mp,
(GCompareFunc) g_strcmp0);
if (l) {
@@ -1561,16 +1572,18 @@ tracker_processor_mount_point_removed (TrackerProcessor *processor,
TrackerProcessorPrivate *priv;
GFile *file;
GList *l;
+ gchar *mp;
g_return_if_fail (TRACKER_IS_PROCESSOR (processor));
priv = processor->private;
+ mp = normalize_mount_point (mount_point);
/* Remove directory from list of iterated_removable_media, so
* we don't traverse it.
*/
- l = g_list_find_custom (priv->removable_devices,
- mount_point,
+ l = g_list_find_custom (priv->removable_devices,
+ mp,
(GCompareFunc) g_strcmp0);
if (l) {
@@ -1580,7 +1593,7 @@ tracker_processor_mount_point_removed (TrackerProcessor *processor,
}
l = g_list_find_custom (priv->removable_devices_completed,
- mount_point,
+ mp,
(GCompareFunc) g_strcmp0);
if (l) {
@@ -1595,6 +1608,8 @@ tracker_processor_mount_point_removed (TrackerProcessor *processor,
file = g_file_new_for_path (mount_point);
tracker_monitor_remove_recursively (priv->monitor, file);
g_object_unref (file);
+
+ g_free (mp);
}
#endif /* HAVE_HAL */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]