]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix flow analysis for reference transfer expressions
authorJürg Billeter <j@bitron.ch>
Mon, 1 Aug 2011 19:12:03 +0000 (21:12 +0200)
committerJürg Billeter <j@bitron.ch>
Mon, 1 Aug 2011 19:12:03 +0000 (21:12 +0200)
vala/valareferencetransferexpression.vala

index 29c522e55990adde1d7d73fac994039bdf3530ef..cd2f154197d54b69f1e409192394d6e5e3d69b41 100644 (file)
@@ -117,9 +117,23 @@ public class Vala.ReferenceTransferExpression : Expression {
 
        public override void get_defined_variables (Collection<Variable> collection) {
                inner.get_defined_variables (collection);
+               var local = inner.symbol_reference as LocalVariable;
+               var param = inner.symbol_reference as Parameter;
+               if (local != null) {
+                       collection.add (local);
+               } else if (param != null && param.direction == ParameterDirection.OUT) {
+                       collection.add (param);
+               }
        }
 
        public override void get_used_variables (Collection<Variable> collection) {
                inner.get_used_variables (collection);
+               var local = inner.symbol_reference as LocalVariable;
+               var param = inner.symbol_reference as Parameter;
+               if (local != null) {
+                       collection.add (local);
+               } else if (param != null && param.direction == ParameterDirection.OUT) {
+                       collection.add (param);
+               }
        }
 }