]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix symbol resolution and enable control flow analysis for signals
authorLuca Bruno <lucabru@src.gnome.org>
Fri, 17 Dec 2010 21:39:31 +0000 (22:39 +0100)
committerJürg Billeter <j@bitron.ch>
Sun, 19 Dec 2010 15:02:07 +0000 (16:02 +0100)
Fixes bug 635820.

vala/valaflowanalyzer.vala
vala/valasignal.vala

index 010c443c0233060b10dc97b5e03a177a2cf94468..c57ade73002cad6a1a2b8c0f613a9ba39048a7df 100644 (file)
@@ -176,6 +176,12 @@ public class Vala.FlowAnalyzer : CodeVisitor {
                visit_subroutine (m);
        }
 
+       public override void visit_signal (Signal sig) {
+               if (sig.default_handler != null) {
+                       visit_subroutine (sig.default_handler);
+               }
+       }
+
        void visit_subroutine (Subroutine m) {
                if (m.body == null) {
                        return;
index 6530c449dd9d652bedacfd1822745fd6231abb11..a2ed64acab42bb0484857c532cb3bee61c09bbe9 100644 (file)
@@ -205,7 +205,9 @@ public class Vala.Signal : Symbol, Lockable {
                foreach (Parameter param in parameters) {
                        param.accept (visitor);
                }
-               if (default_handler != null) {
+               if (default_handler == null && body != null) {
+                       body.accept (visitor);
+               } else if (default_handler != null) {
                        default_handler.accept (visitor);
                }
        }