]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix memory leak when retrieving values from property getters returning
authorJürg Billeter <j@bitron.ch>
Fri, 9 Jan 2009 22:53:11 +0000 (22:53 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 9 Jan 2009 22:53:11 +0000 (22:53 +0000)
2009-01-09  Jürg Billeter  <j@bitron.ch>

* vala/valasemanticanalyzer.vala:

Fix memory leak when retrieving values from property getters
returning owned values, fixes bug 564081

svn path=/trunk/; revision=2314

ChangeLog
vala/valasemanticanalyzer.vala

index e3cdd1a965ce20eaf9135afae72b7abdf5f49a15..dfe6bdcc33b56df98fc5760836046e48032d1248 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-09  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valasemanticanalyzer.vala:
+
+       Fix memory leak when retrieving values from property getters
+       returning owned values, fixes bug 564081
+
 2009-01-09  Jürg Billeter  <j@bitron.ch>
 
        * gobject/valaccodememberaccessmodule.vala:
index f6e8588e7fdcbb018c2d13446a3c3e939aa7630d..bd1d25a0f9b8126d19a5dbf39d4a0566e21b9b90 100644 (file)
@@ -1,6 +1,7 @@
 /* valasemanticanalyzer.vala
  *
- * Copyright (C) 2006-2009  Jürg Billeter, Raffaele Sandrini
+ * Copyright (C) 2006-2009  Jürg Billeter
+ * Copyright (C) 2006-2008  Raffaele Sandrini
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -163,7 +164,10 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                        var prop = (Property) sym;
                        if (prop.property_type != null) {
                                var type = prop.property_type.copy ();
-                               type.value_owned = false;
+                               if (lvalue) {
+                                       // setters never take ownership
+                                       type.value_owned = false;
+                               }
                                return type;
                        }
                } else if (sym is FormalParameter) {