vala r2438 - in trunk: . gobject
- From: ryanl svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2438 - in trunk: . gobject
- Date: Fri, 13 Feb 2009 00:18:00 +0000 (UTC)
Author: ryanl
Date: Fri Feb 13 00:17:59 2009
New Revision: 2438
URL: http://svn.gnome.org/viewvc/vala?rev=2438&view=rev
Log:
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.
Modified:
trunk/ChangeLog
trunk/gobject/valagasyncmodule.vala
Modified: trunk/gobject/valagasyncmodule.vala
==============================================================================
--- trunk/gobject/valagasyncmodule.vala (original)
+++ trunk/gobject/valagasyncmodule.vala Fri Feb 13 00:17:59 2009
@@ -43,6 +43,16 @@
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"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]