summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2010-09-27 15:20:16 +0200
committerAleksander Morgado <aleksander@lanedo.com>2010-09-27 16:49:25 +0200
commit9cd4cd6ca97e81eed2a1e34ae2f055874895bb3f (patch)
tree5efda3d7c509add8bcbe2e303037f334d0f45322 /src
parent1773692baa41f6a686b74755f1c3ace889539412 (diff)
downloadtracker-9cd4cd6ca97e81eed2a1e34ae2f055874895bb3f.tar.gz
libtracker-miner: don't create inner loop until needed
Diffstat (limited to 'src')
-rw-r--r--src/libtracker-miner/tracker-miner-fs.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index 1d6561860..2eb553660 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -2590,7 +2590,6 @@ ensure_mtime_cache (TrackerMinerFS *fs,
GFile *file)
{
gchar *query, *uri;
- CacheQueryData data;
GFile *parent;
guint cache_size;
@@ -2622,10 +2621,6 @@ ensure_mtime_cache (TrackerMinerFS *fs,
g_hash_table_remove_all (fs->private->mtime_cache);
- /* Initialize data contents */
- data.main_loop = g_main_loop_new (NULL, FALSE);
- data.values = g_hash_table_ref (fs->private->mtime_cache);
-
if (!parent || file_is_crawl_directory (fs, file)) {
/* File is a crawl directory itself, query its mtime directly */
uri = g_file_get_uri (file);
@@ -2655,6 +2650,12 @@ ensure_mtime_cache (TrackerMinerFS *fs,
}
if (query) {
+ CacheQueryData data;
+
+ /* Initialize data contents */
+ data.main_loop = g_main_loop_new (NULL, FALSE);
+ data.values = g_hash_table_ref (fs->private->mtime_cache);
+
tracker_sparql_connection_query_async (tracker_miner_get_connection (TRACKER_MINER (fs)),
query,
NULL,
@@ -2662,11 +2663,10 @@ ensure_mtime_cache (TrackerMinerFS *fs,
&data);
g_free (query);
g_main_loop_run (data.main_loop);
+ g_main_loop_unref (data.main_loop);
+ g_hash_table_unref (data.values);
}
- g_main_loop_unref (data.main_loop);
- g_hash_table_unref (data.values);
-
cache_size = g_hash_table_size (fs->private->mtime_cache);
/* Quite ugly hack: If mtime_cache is found EMPTY after the query, still, we
@@ -2677,6 +2677,8 @@ ensure_mtime_cache (TrackerMinerFS *fs,
if (parent &&
cache_size == 0 &&
miner_fs_has_children_without_parent (fs, parent)) {
+ CacheQueryData data;
+
/* Initialize data contents */
data.main_loop = g_main_loop_new (NULL, FALSE);
data.values = g_hash_table_ref (fs->private->mtime_cache);