vala r1373 - in trunk: . gobject



Author: juergbi
Date: Mon May 12 15:01:22 2008
New Revision: 1373
URL: http://svn.gnome.org/viewvc/vala?rev=1373&view=rev

Log:
2008-05-12  Juerg Billeter  <j bitron ch>

	* gobject/valaccodegenerator.vala: add basic support for
	instance_pos attribute to struct creation methods, fixes bug 530774


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodegenerator.vala

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Mon May 12 15:01:22 2008
@@ -2942,7 +2942,7 @@
 
 			creation_call = new CCodeFunctionCall (new CCodeIdentifier (m.get_cname ()));
 
-			if (expr.type_reference.data_type is Struct) {
+			if (expr.type_reference.data_type is Struct && !(m.cinstance_parameter_position < 0)) {
 				creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
 			} else if (expr.type_reference.data_type is Class) {
 				var cl = (Class) expr.type_reference.data_type;
@@ -3040,6 +3040,11 @@
 				i++;
 			}
 
+			if (expr.type_reference.data_type is Struct && m.cinstance_parameter_position < 0) {
+				// instance parameter is at the end in a struct creation method
+				creation_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, instance));
+			}
+
 			if (expr.can_fail) {
 				// method can fail
 				current_method_inner_error = true;



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