]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Fix reporting unused metadata
authorLuca Bruno <lucabru@src.gnome.org>
Mon, 22 Aug 2011 14:31:41 +0000 (16:31 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Mon, 22 Aug 2011 19:49:02 +0000 (21:49 +0200)
vala/valagirparser.vala
vapi/metadata/Gedit-3.0.metadata
vapi/metadata/Rest-0.7.metadata

index 81cf6a8dcd15c02664b3fe83ff6c5c7342ecb90e..dd204a3999cd50acb0cdfc34573f122a0eb44353 100644 (file)
@@ -1018,6 +1018,7 @@ public class Vala.GirParser : CodeVisitor {
 
        SourceFile current_source_file;
        Node root;
+       ArrayList<Metadata> metadata_roots = new ArrayList<Metadata> ();
 
        SourceLocation begin;
        SourceLocation end;
@@ -1059,8 +1060,8 @@ public class Vala.GirParser : CodeVisitor {
 
                root.process (this);
 
-               foreach (var node in root.members) {
-                       report_unused_metadata (node.metadata);
+               foreach (var metadata in metadata_roots) {
+                       report_unused_metadata (metadata);
                }
        }
 
@@ -1111,15 +1112,6 @@ public class Vala.GirParser : CodeVisitor {
                metadata_stack = new ArrayList<Metadata> ();
                metadata = Metadata.empty;
 
-               // load metadata, first look into metadata directories then in the same directory of the .gir.
-               string? metadata_filename = context.get_metadata_path (source_file.filename);
-               if (metadata_filename != null && FileUtils.test (metadata_filename, FileTest.EXISTS)) {
-                       var metadata_parser = new MetadataParser ();
-                       var metadata_file = new SourceFile (context, source_file.file_type, metadata_filename);
-                       context.add_source_file (metadata_file);
-                       metadata = metadata_parser.parse_metadata (metadata_file);
-               }
-
                this.current_source_file = source_file;
                reader = new MarkupReader (source_file.filename);
 
@@ -1752,6 +1744,16 @@ public class Vala.GirParser : CodeVisitor {
                        return;
                }
 
+               // load metadata, first look into metadata directories then in the same directory of the .gir.
+               string? metadata_filename = context.get_metadata_path (current_source_file.filename);
+               if (metadata_filename != null && FileUtils.test (metadata_filename, FileTest.EXISTS)) {
+                       var metadata_parser = new MetadataParser ();
+                       var metadata_file = new SourceFile (context, current_source_file.file_type, metadata_filename);
+                       context.add_source_file (metadata_file);
+                       metadata = metadata_parser.parse_metadata (metadata_file);
+                       metadata_roots.add (metadata);
+               }
+
                var ns_metadata = metadata.match_child (gir_namespace);
                if (ns_metadata.has_argument (ArgumentType.NAME)) {
                        vala_namespace = ns_metadata.get_string (ArgumentType.NAME);
index bf2cd5bdddad3710c6883ba55d0cf43fc18de283..b46b2eb5ef77160ca959782a8ead25be085494c1 100644 (file)
@@ -10,7 +10,6 @@ Encoding  cheader_filename="gedit/gedit-encodings.h"
 EncodingsComboBox cheader_filename="gedit/gedit-encodings-combo-box.h"
 Message cheader_filename="gedit/gedit-message.h"
 MessageBus cheader_filename="gedit/gedit-message-bus.h"
-MessageType cheader_filename="gedit/gedit-message-type.h"
 // present in the gir but the header is missing
 NotebookShowTabsModeType skip=true
 Panel cheader_filename="gedit/gedit-panel.h"
@@ -35,4 +34,3 @@ METADATA_* cheader_filename="gedit/gedit-document.h"
 
 MessageBusForeach cheader_filename="gedit/gedit-message-bus.h"
 MessageCallback cheader_filename="gedit/gedit-message-bus.h"
-MessageTypeForeach cheader_filename="gedit/gedit-message-type.h"
index 8d8ce98936227fa4c7336f3e13e677c2beb07457..db7a1fb76ace18601604ec6bd729e776493f6f41 100644 (file)
@@ -4,7 +4,7 @@ OAuthSignatureMethod cheader_filename="rest/oauth-proxy.h"
 OAuth2Proxy cheader_filename="rest/oauth2-proxy.h" cprefix="oauth2_proxy_"
 OAuth2ProxyCall cheader_filename="rest/oauth2-proxy-call.h" cprefix="oauth2_proxy_call_"
 Proxy cheader_filename="rest/rest-proxy.h"
-       .new_call skip=false owned=true
+       .new_call skip=false
        .bind skip=false
 ProxyCall cheader_filename="rest/rest-proxy-call.h"
        .run.loop out=true default=null
@@ -21,7 +21,7 @@ ProxyError cheader_filename="rest/rest-proxy.h"
 ProxyCallError cheader_filename="rest/rest-proxy-call.h"
 Param cheader_filename="rest/rest-param.h"
 Params cheader_filename="rest/rest-params.h"
-       .as_string_hash_table skip=false owned=true type_arguments="string,string"
+       .as_string_hash_table skip=false type_arguments="string,string"
 ParamsIter cheader_filename="rest/rest-params.h"
 XmlNode cheader_filename="rest/rest-xml-node.h"
 XmlParser cheader_filename="rest/rest-xml-parser.h"