[gobject-introspection] transformer: only include function macros from headers. See #159



commit edca61f92810bb0cc0f5aac1ee36dd0d487a917f
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Mon Jul 22 19:36:00 2019 +0200

    transformer: only include function macros from headers. See #159
    
    We already do the same thing for constants (see _create_const()).
    Otherwise macros in .c files which aren't namespaced will trigger a warning.

 giscanner/transformer.py                               |  4 ++++
 .../Regress.FOO_IS_TILE_HANDLER.page                   | 14 --------------
 .../Regress.FOO_TILE_HANDLER.page                      | 14 --------------
 tests/scanner/Regress-1.0-expected.gir                 | 18 ------------------
 4 files changed, 4 insertions(+), 46 deletions(-)
---
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index a3cf3126..f63894cb 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -459,6 +459,10 @@ raise ValueError."""
     def _create_function_macro(self, symbol):
         if symbol.ident.startswith('_'):
             return None
+
+        if (symbol.source_filename is None or not symbol.source_filename.endswith('.h')):
+            return None
+
         parameters = list(self._create_parameters(symbol, symbol.base_type))
         name = self._strip_symbol(symbol)
         macro = ast.FunctionMacro(name, parameters, symbol.ident)
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index ce2153fd..a5e3665d 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -1340,15 +1340,6 @@ it says it's pointer but it's actually a string.</doc>
         </parameter>
       </parameters>
     </function-macro>
-    <function-macro name="FOO_IS_TILE_HANDLER"
-                    c:identifier="REGRESS_FOO_IS_TILE_HANDLER"
-                    introspectable="0">
-      <source-position filename="foo.c" line="630"/>
-      <parameters>
-        <parameter name="object">
-        </parameter>
-      </parameters>
-    </function-macro>
     <function-macro name="FOO_OBJECT"
                     c:identifier="REGRESS_FOO_OBJECT"
                     introspectable="0">
@@ -1406,15 +1397,6 @@ it says it's pointer but it's actually a string.</doc>
       <source-position filename="foo.h" line="10"/>
       <type name="gint" c:type="gint"/>
     </constant>
-    <function-macro name="FOO_TILE_HANDLER"
-                    c:identifier="REGRESS_FOO_TILE_HANDLER"
-                    introspectable="0">
-      <source-position filename="foo.c" line="629"/>
-      <parameters>
-        <parameter name="object">
-        </parameter>
-      </parameters>
-    </function-macro>
     <enumeration name="FooASingle" c:type="RegressFooASingle">
       <source-position filename="foo.h" line="534"/>
       <member name="foo_some_single_enum"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]