[vala] GASync: Do not declare async data struct too early



commit e444f2bd15ef92a968219ec3467f6097c7db1c41
Author: Jürg Billeter <j bitron ch>
Date:   Tue Oct 27 17:35:58 2009 +0100

    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.

 codegen/valagasyncmodule.vala |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index a02f76f..3d6f9fe 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) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]