[gobject-introspection] Do the filename filtering in scannerlexer
- From: Johan Dahlin <johan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] Do the filename filtering in scannerlexer
- Date: Thu, 5 Apr 2012 17:15:42 +0000 (UTC)
commit 1c8927d147090fdc2c2f1f91d60a36cb69a19fe9
Author: Johan Dahlin <johan gnome org>
Date: Thu Apr 5 14:12:11 2012 -0300
Do the filename filtering in scannerlexer
This avoids a bit of python work and reduces the
amount of allocations.
giscanner/scannerlexer.l | 21 +++++++++++++++++----
giscanner/sourcescanner.py | 5 +----
2 files changed, 18 insertions(+), 8 deletions(-)
---
diff --git a/giscanner/scannerlexer.l b/giscanner/scannerlexer.l
index b4a6fac..8ff6b7b 100644
--- a/giscanner/scannerlexer.l
+++ b/giscanner/scannerlexer.l
@@ -214,21 +214,29 @@ yywrap (void)
static void
parse_comment (GISourceScanner *scanner)
{
- GString *string;
+ GString *string = NULL;
int c1, c2;
GISourceComment *comment;
int comment_lineno;
+ int skip = FALSE;
+
+ if (!g_list_find_custom (scanner->filenames,
+ scanner->current_filename,
+ (GCompareFunc)g_strcmp0)) {
+ skip = TRUE;
+ } else {
+ string = g_string_new ("/*");
+ }
c1 = input();
c2 = input();
- string = g_string_new ("/*");
-
comment_lineno = lineno;
while (c2 != EOF && !(c1 == '*' && c2 == '/'))
{
- g_string_append_c (string, c1);
+ if (!skip)
+ g_string_append_c (string, c1);
if (c1 == '\n')
lineno++;
@@ -236,6 +244,11 @@ parse_comment (GISourceScanner *scanner)
c1 = c2;
c2 = input();
}
+
+ if (skip) {
+ return;
+ }
+
g_string_append (string, "*/");
comment = g_slice_new (GISourceComment);
diff --git a/giscanner/sourcescanner.py b/giscanner/sourcescanner.py
index b0d682f..db282f8 100644
--- a/giscanner/sourcescanner.py
+++ b/giscanner/sourcescanner.py
@@ -259,10 +259,7 @@ class SourceScanner(object):
yield SourceSymbol(self._scanner, symbol)
def get_comments(self):
- for comment in self._scanner.get_comments():
- filename = comment[-2]
- if filename in self._filenames:
- yield comment
+ return self._scanner.get_comments()
def dump(self):
print '-'*30
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]