vala r1039 - in trunk: . vala vapigen



Author: juergbi
Date: Sat Feb 23 17:42:27 2008
New Revision: 1039
URL: http://svn.gnome.org/viewvc/vala?rev=1039&view=rev

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

	* vala/valainterfacewriter.vala: fix support for instance delegates

	* vapigen/valagidlparser.vala: support instance delegates in
	  bindings generator


Modified:
   trunk/ChangeLog
   trunk/vala/valainterfacewriter.vala
   trunk/vapigen/valagidlparser.vala

Modified: trunk/vala/valainterfacewriter.vala
==============================================================================
--- trunk/vala/valainterfacewriter.vala	(original)
+++ trunk/vala/valainterfacewriter.vala	Sat Feb 23 17:42:27 2008
@@ -526,7 +526,10 @@
 		
 		write_indent ();
 		write_accessibility (cb);
-		write_string ("static delegate ");
+		if (!cb.instance) {
+			write_string ("static ");
+		}
+		write_string ("delegate ");
 		
 		write_return_type (cb.return_type);
 		

Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala	(original)
+++ trunk/vapigen/valagidlparser.vala	Sat Feb 23 17:42:27 2008
@@ -296,9 +296,14 @@
 		
 		foreach (weak IdlNodeParam param in f_node.parameters) {
 			weak IdlNode param_node = (IdlNode) param;
-			
-			var p = new FormalParameter (param_node.name, parse_param (param));
-			cb.add_parameter (p);
+
+			if (param_node.name == "user_data") {
+				// hide user_data parameter for instance delegates
+				cb.instance = true;
+			} else {
+				var p = new FormalParameter (param_node.name, parse_param (param));
+				cb.add_parameter (p);
+			}
 		}
 		
 		return cb;
@@ -1306,6 +1311,11 @@
 
 				// hide array length param
 				hide_param = true;
+			} else if (last_param != null && p.name == "user_data") {
+				// last_param is delegate
+
+				// hide deleate target param
+				hide_param = true;
 			}
 
 			if (!hide_param) {



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