summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-10-15 15:28:42 -0400
committerJasper St. Pierre <jstpierre@mecheye.net>2013-10-15 15:29:36 -0400
commit8c0ca4717d834a6c578579656683c55ea22a06f4 (patch)
treef06cf4e7e3cee82f4b3f4bf37d63d5b310477a95
parent77fcc8fa47d63f58b2c3f6216a0493e42f6d44b3 (diff)
downloadgobject-introspection-8c0ca4717d834a6c578579656683c55ea22a06f4.tar.gz
sourcescanner: Do some fast path checks on the filename
Going through the VFS layer is substantially slower, so check against the base filenames first. This speeds things up on case-sensitive filesystems.
-rw-r--r--giscanner/sourcescanner.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/giscanner/sourcescanner.c b/giscanner/sourcescanner.c
index 830d21cd..97150292 100644
--- a/giscanner/sourcescanner.c
+++ b/giscanner/sourcescanner.c
@@ -269,6 +269,11 @@ already_has_current_file (GISourceScanner *scanner)
GFile *current_file;
g_assert (scanner->current_filename);
+
+ for (l = scanner->filenames; l != NULL; l = l->next)
+ if (strcmp (scanner->current_filename, l->data) == 0)
+ return TRUE;
+
current_file = g_file_new_for_path (scanner->current_filename);
for (l = scanner->filenames; l != NULL; l = l->next)