vala r1050 - in trunk: . gobject vala



Author: juergbi
Date: Sun Feb 24 15:43:32 2008
New Revision: 1050
URL: http://svn.gnome.org/viewvc/vala?rev=1050&view=rev

Log:
2008-02-24  Juerg Billeter  <j bitron ch>

	* vala/valasemanticanalyzer.vala, gobject/valaccodegenerator.vala:
	  fix crash when using delegates as properties, fixes bug 517499


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

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Sun Feb 24 15:43:32 2008
@@ -677,7 +677,7 @@
 				block.add_statement (new CCodeExpressionStatement (ccall));
 
 				// HACK: decrement the refcount before returning the value to simulate a weak reference getter function
-				if (prop.type_reference.data_type.is_reference_counting ()) {
+				if (prop.type_reference.data_type != null && prop.type_reference.data_type.is_reference_counting ()) {
 					var unref_cond = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, new CCodeIdentifier ("value"), new CCodeConstant ("NULL"));
 					var unref_function = new CCodeFunctionCall (get_destroy_func_expression (prop.type_reference));
 					unref_function.add_argument (new CCodeIdentifier ("value"));

Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala	(original)
+++ trunk/vala/valasemanticanalyzer.vala	Sun Feb 24 15:43:32 2008
@@ -598,6 +598,7 @@
 		 * Reference counting types can simulate to return a weak
 		 * reference */
 		if ((prop.is_abstract || prop.is_virtual) &&
+		    prop.type_reference.data_type != null &&
 		    prop.type_reference.data_type.is_reference_type () &&
 		    !prop.type_reference.data_type.is_reference_counting () &&
 		    !prop.type_reference.transfers_ownership)



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