[tracker/wip/rishi/non-native: 4/8] libtracker-miner: Support caching non-native files
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/rishi/non-native: 4/8] libtracker-miner: Support caching non-native files
- Date: Mon, 29 Jan 2018 22:37:29 +0000 (UTC)
commit 3ab22bb80294fe9273931d29ddcf345d6cf38793
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Jan 9 12:27:23 2018 +0100
libtracker-miner: Support caching non-native files
https://bugzilla.gnome.org/show_bug.cgi?id=792337
src/libtracker-miner/tracker-file-system.c | 51 ++++++++++++++++++++++------
1 files changed, 40 insertions(+), 11 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-file-system.c b/src/libtracker-miner/tracker-file-system.c
index 6c42e6a..b775b85 100644
--- a/src/libtracker-miner/tracker-file-system.c
+++ b/src/libtracker-miner/tracker-file-system.c
@@ -261,21 +261,50 @@ file_tree_lookup (GNode *tree,
g_free (parent_uri);
} else {
- /* First check the root node */
- if (!file_node_data_equal_or_child (tree, uri, &ptr)) {
+ FileNodeData *root_data;
+ gchar *file_scheme = NULL;
+ gchar *root_scheme = NULL;
+ gchar *root_uri = NULL;
+
+ file_scheme = g_file_get_uri_scheme (file);
+
+ root_data = tree->data;
+ root_scheme = g_file_get_uri_scheme (root_data->file);
+ root_uri = g_file_get_uri (root_data->file);
+
+ if (g_strcmp0 (file_scheme, root_scheme) == 0) {
+ /* First check the root node */
+ if (!file_node_data_equal_or_child (tree, uri, &ptr)) {
+ g_free (file_scheme);
+ g_free (root_scheme);
+ g_free (root_uri);
+ g_free (uri);
+ return NULL;
+ }
+
+ /* Second check there is no basename and if there isn't,
+ * then this node MUST be the closest registered node
+ * we can use for the uri. The difference here is that
+ * we return tree not NULL.
+ */
+ else if (ptr[0] == '\0') {
+ g_free (file_scheme);
+ g_free (root_scheme);
+ g_free (root_uri);
+ g_free (uri);
+ return tree;
+ }
+ } else if (g_strcmp0 (root_uri, "file:///") != 0) {
+ g_free (file_scheme);
+ g_free (root_scheme);
+ g_free (root_uri);
g_free (uri);
return NULL;
}
- /* Second check there is no basename and if there isn't,
- * then this node MUST be the closest registered node
- * we can use for the uri. The difference here is that
- * we return tree not NULL.
- */
- else if (ptr[0] == '\0') {
- g_free (uri);
- return tree;
- }
+ g_free (file_scheme);
+ g_free (root_scheme);
+ g_free (root_uri);
}
parent = tree;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]