summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2012-11-11 20:12:45 +0100
committerJürg Billeter <j@bitron.ch>2012-11-11 20:12:45 +0100
commite6a5b906a9047ddbfc89aa0f0b7aff58af8037ff (patch)
treeb14b17743094a2d4b7b96d2777001163014bce24 /codegen
parent123eead8c4998581f9789b41069f281612863471 (diff)
downloadvala-e6a5b906a9047ddbfc89aa0f0b7aff58af8037ff.tar.gz
codegen: Fix memory leak when chaining up in fundamental classes
Fixes bug 684776.
Diffstat (limited to 'codegen')
-rw-r--r--codegen/valaccodemethodmodule.vala2
1 files changed, 1 insertions, 1 deletions
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index 12298b3a5..42faab549 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -606,7 +606,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
var cl = (Class) m.parent_symbol;
ccode.add_declaration (get_ccode_name (cl) + "*", new CCodeVariableDeclarator.zero ("self", new CCodeConstant ("NULL")));
- if (cl.is_fundamental ()) {
+ if (cl.is_fundamental () && !((CreationMethod) m).chain_up) {
var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_type_create_instance"));
ccall.add_argument (get_variable_cexpression ("object_type"));
ccode.add_assignment (get_this_cexpression (), new CCodeCastExpression (ccall, get_ccode_name (cl) + "*"));