diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2010-09-27 15:20:16 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2010-09-27 16:49:25 +0200 |
commit | 9cd4cd6ca97e81eed2a1e34ae2f055874895bb3f (patch) | |
tree | 5efda3d7c509add8bcbe2e303037f334d0f45322 /src | |
parent | 1773692baa41f6a686b74755f1c3ace889539412 (diff) | |
download | tracker-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.c | 18 |
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); |