+2009-02-13 Ryan Lortie <desrt@desrt.ca>
+
+ Bug 571484 – free owned result even if _finish isn't called
+
+ * gobject/valagasyncmodule.vala:
+
+ Emit code to free the result in the result in the event that _finish
+ was not called.
+
2009-02-12 Jürg Billeter <j@bitron.ch>
* vala/valaclass.vala:
datadecl.add_declarator (new CCodeVariableDeclarator ("data", new CCodeIdentifier ("_data")));
freeblock.add_statement (datadecl);
+ if (requires_destroy (m.return_type)) {
+ /* this is very evil. */
+ var v = new LocalVariable (m.return_type, "result");
+ var ma = new MemberAccess.simple ("result");
+ ma.symbol_reference = v;
+ current_method = m;
+ freeblock.add_statement (new CCodeExpressionStatement (get_unref_expression (get_variable_cexpression ("result"), m.return_type, ma)));
+ current_method = null;
+ }
+
var freecall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_free"));
freecall.add_argument (new CCodeIdentifier (dataname));
freecall.add_argument (new CCodeIdentifier ("data"));