vala r1698 - in trunk: . gobject tests



Author: jaredm
Date: Sat Jul 12 11:43:43 2008
New Revision: 1698
URL: http://svn.gnome.org/viewvc/vala?rev=1698&view=rev

Log:
2008-07-12  Jared Moore  <jaredm svn gnome org 

	* gobject/valaccodememberaccessbinding.vala:

	Fix access to private struct fields, fixed bug 542032.

	* tests/structs.vala:
	* tests/structs.exp:

	Added test cases for private struct fields.




Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodememberaccessbinding.vala
   trunk/tests/structs.exp
   trunk/tests/structs.vala

Modified: trunk/gobject/valaccodememberaccessbinding.vala
==============================================================================
--- trunk/gobject/valaccodememberaccessbinding.vala	(original)
+++ trunk/gobject/valaccodememberaccessbinding.vala	Sat Jul 12 11:43:43 2008
@@ -86,7 +86,7 @@
 				var instance_target_type = codegen.get_data_type_for_symbol ((TypeSymbol) f.parent_symbol);
 
 				var cl = instance_target_type.data_type as Class;
-				bool is_gtypeinstance = (cl == null || !cl.is_compact);
+				bool is_gtypeinstance = ((instance_target_type.data_type == cl) && (cl == null || !cl.is_compact));
 
 				CCodeExpression inst;
 				if (is_gtypeinstance && f.access == SymbolAccessibility.PRIVATE) {

Modified: trunk/tests/structs.exp
==============================================================================
--- trunk/tests/structs.exp	(original)
+++ trunk/tests/structs.exp	Sat Jul 12 11:43:43 2008
@@ -11,4 +11,5 @@
 test_ref_parameter: st.field = 1
 after test_ref_parameter: st.field = 2
 after test_out_parameter: st.field = 3
+StructWithPrivateField: field = 1
 .

Modified: trunk/tests/structs.vala
==============================================================================
--- trunk/tests/structs.vala	(original)
+++ trunk/tests/structs.vala	Sat Jul 12 11:43:43 2008
@@ -8,6 +8,15 @@
 	public int field;
 }
 
+struct StructWithPrivateField {
+	private int field;
+
+	public void test () {
+		field = 1;
+		stdout.printf ("StructWithPrivateField: field = %d\n", field);
+	}
+}
+
 struct StructWithCreationMethod {
 	public StructWithCreationMethod () {
 		stdout.printf ("StructWithCreationMethod\n");
@@ -65,6 +74,9 @@
 	test_out_parameter (out simple_struct);
 	stdout.printf ("after test_out_parameter: st.field = %d\n", simple_struct.field);
 
+	var struct_with_private_field = StructWithPrivateField ();
+	struct_with_private_field.test ();
+
 	stdout.printf (".\n");
 }
 



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