vala r2316 - in trunk: . gobject



Author: juergbi
Date: Fri Jan  9 23:09:11 2009
New Revision: 2316
URL: http://svn.gnome.org/viewvc/vala?rev=2316&view=rev

Log:
2009-01-10  JÃrg Billeter  <j bitron ch>

	* gobject/valaccodebasemodule.vala:
	* gobject/valaccodedelegatemodule.vala:

	Fix critical and generated code for static delegate fields,
	fixes bug 563016


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodebasemodule.vala
   trunk/gobject/valaccodedelegatemodule.vala

Modified: trunk/gobject/valaccodebasemodule.vala
==============================================================================
--- trunk/gobject/valaccodebasemodule.vala	(original)
+++ trunk/gobject/valaccodebasemodule.vala	Fri Jan  9 23:09:11 2009
@@ -3581,7 +3581,8 @@
 	}
 
 	public CCodeExpression? default_value_for_type (DataType type, bool initializer_expression) {
-		if ((type.data_type != null && type.data_type.is_reference_type ()) || type is PointerType || type is ArrayType) {
+		if ((type.data_type != null && type.data_type.is_reference_type ())
+		    || type is PointerType || type is ArrayType || type is DelegateType) {
 			return new CCodeConstant ("NULL");
 		} else if (type.data_type != null && type.data_type.get_default_value () != null) {
 			return new CCodeConstant (type.data_type.get_default_value ());

Modified: trunk/gobject/valaccodedelegatemodule.vala
==============================================================================
--- trunk/gobject/valaccodedelegatemodule.vala	(original)
+++ trunk/gobject/valaccodedelegatemodule.vala	Fri Jan  9 23:09:11 2009
@@ -1,6 +1,7 @@
 /* valaccodedelegatemodule.vala
  *
- * Copyright (C) 2006-2008  JÃrg Billeter, Raffaele Sandrini
+ * Copyright (C) 2006-2009  JÃrg Billeter
+ * Copyright (C) 2006-2008  Raffaele Sandrini
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -123,14 +124,13 @@
 
 				var ma = (MemberAccess) delegate_expr;
 
-				var base_type = ma.inner.value_type;
 				CCodeExpression target_expr = null;
 
-				var pub_inst = (CCodeExpression) get_ccodenode (ma.inner);
-
 				if (field.binding == MemberBinding.INSTANCE) {
-					var instance_expression_type = base_type;
+					var instance_expression_type = ma.inner.value_type;
 					var instance_target_type = get_data_type_for_symbol ((TypeSymbol) field.parent_symbol);
+
+					var pub_inst = (CCodeExpression) get_ccodenode (ma.inner);
 					CCodeExpression typed_inst = transform_expression (pub_inst, instance_expression_type, instance_target_type);
 
 					CCodeExpression inst;



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