vala r2339 - in trunk: . gobject



Author: juergbi
Date: Wed Jan 14 17:40:52 2009
New Revision: 2339
URL: http://svn.gnome.org/viewvc/vala?rev=2339&view=rev

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

	* gobject/valaccodememberaccessmodule.vala:

	Report error when using getters of properties with unowned return
	value and without accessor, fixes bug 567750


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

Modified: trunk/gobject/valaccodememberaccessmodule.vala
==============================================================================
--- trunk/gobject/valaccodememberaccessmodule.vala	(original)
+++ trunk/gobject/valaccodememberaccessmodule.vala	Wed Jan 14 17:40:52 2009
@@ -1,6 +1,7 @@
 /* valaccodememberaccessmodule.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
@@ -226,6 +227,15 @@
 				// g_object_get always returns owned values
 				// therefore, property getters of properties
 				// without accessor methods need to be marked as owned
+				if (!prop.get_accessor.value_type.value_owned) {
+					// only report error for types where there actually
+					// is a difference between `owned' and `unowned'
+					var owned_value_type = prop.get_accessor.value_type.copy ();
+					owned_value_type.value_owned = true;
+					if (requires_copy (owned_value_type)) {
+						Report.error (prop.get_accessor.source_reference, "unowned return value for getter of property `%s' not supported without accessor".printf (prop.get_full_name ()));
+					}
+				}
 
 				var ccomma = new CCodeCommaExpression ();
 				var temp_var = get_temp_variable (expr.value_type);



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