From: Jürg Billeter Date: Tue, 27 Oct 2009 16:35:58 +0000 (+0100) Subject: GASync: Do not declare async data struct too early X-Git-Tag: 0.7.8~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e444f2bd15ef92a968219ec3467f6097c7db1c41;p=thirdparty%2Fvala.git GASync: Do not declare async data struct too early Async data struct declaration depends on declarations of local variable types and thus must be appended after visiting the method body. Fixes bug 599767. --- diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala index a02f76f35..3d6f9fedd 100644 --- a/codegen/valagasyncmodule.vala +++ b/codegen/valagasyncmodule.vala @@ -305,7 +305,6 @@ internal class Vala.GAsyncModule : GSignalModule { if (!m.is_abstract) { var data = generate_data_struct (m); - append_struct (data); append_function (generate_free_function (m)); source_type_member_definition.append (generate_async_function (m)); @@ -316,6 +315,10 @@ internal class Vala.GAsyncModule : GSignalModule { closure_struct = data; base.visit_method (m); closure_struct = null; + + // only append data struct here to make sure all struct member + // types are declared before the struct definition + append_struct (data); } if (m.is_abstract || m.is_virtual) {