[vala] gio-2.0: Fix GDBusProxy::g-properties-changed binding



commit fe751a8b7a42cdc42e01c279ce373df72b5d18ad
Author: Jürg Billeter <j bitron ch>
Date:   Tue Jan 25 13:56:14 2011 +0100

    gio-2.0: Fix GDBusProxy::g-properties-changed binding

 vala/valacodewriter.vala               |    4 ++++
 vapi/gio-2.0.vapi                      |    2 +-
 vapi/packages/gio-2.0/gio-2.0.metadata |    1 +
 vapigen/valagidlparser.vala            |   11 +++++++++++
 4 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala
index 62f1d07..49806e0 100644
--- a/vala/valacodewriter.vala
+++ b/vala/valacodewriter.vala
@@ -864,6 +864,10 @@ public class Vala.CodeWriter : CodeVisitor {
 				ccode_params.append_printf ("%sarray_length = false", separator);
 				separator = ", ";
 			}
+			if (param.array_null_terminated && param.variable_type is ArrayType) {
+				ccode_params.append_printf ("%sarray_null_terminated = true", separator);
+				separator = ", ";
+			}
 			if (param.array_length_type != null && param.variable_type is ArrayType) {
 				ccode_params.append_printf ("%sarray_length_type = \"%s\"", separator, param.array_length_type);
 				separator = ", ";
diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi
index 7f899fd..f3b83f4 100644
--- a/vapi/gio-2.0.vapi
+++ b/vapi/gio-2.0.vapi
@@ -482,7 +482,7 @@ namespace GLib {
 		public string g_name_owner { owned get; }
 		[NoAccessorMethod]
 		public string g_object_path { owned get; construct; }
-		public virtual signal void g_properties_changed (GLib.Variant changed_properties, string[] invalidated_properties);
+		public virtual signal void g_properties_changed (GLib.Variant changed_properties, [CCode (array_length = false, array_null_terminated = true)] string[] invalidated_properties);
 		public virtual signal void g_signal (string sender_name, string signal_name, GLib.Variant parameters);
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
diff --git a/vapi/packages/gio-2.0/gio-2.0.metadata b/vapi/packages/gio-2.0/gio-2.0.metadata
index 3260a3c..754f92b 100644
--- a/vapi/packages/gio-2.0/gio-2.0.metadata
+++ b/vapi/packages/gio-2.0/gio-2.0.metadata
@@ -93,6 +93,7 @@ GDBusMethodInfo.out_args is_array="1"
 GDBusNodeInfo.annotations is_array="1"
 GDBusNodeInfo.interfaces is_array="1"
 GDBusNodeInfo.nodes is_array="1"
+GDBusProxy::g_properties_changed.invalidated_properties no_array_length="1" array_null_terminated="1"
 g_dbus_proxy_call async="1"
 g_dbus_proxy_call.parameters nullable="1"
 g_dbus_proxy_call_finish transfer_ownership="1"
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index 81978d1..fdcfdad 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -2766,6 +2766,17 @@ public class Vala.GIdlParser : CodeVisitor {
 							p.variable_type = param_type;
 							p.direction = ParameterDirection.IN;
 						}
+					} else if (nv[0] == "no_array_length") {
+						if (eval (nv[1]) == "1") {
+							p.no_array_length = true;
+						}
+					} else if (nv[0] == "array_length_type") {
+						p.array_length_type = eval (nv[1]);
+					} else if (nv[0] == "array_null_terminated") {
+						if (eval (nv[1]) == "1") {
+							p.no_array_length = true;
+							p.array_null_terminated = true;
+						}
 					} else if (nv[0] == "is_out") {
 						if (eval (nv[1]) == "1") {
 							p.direction = ParameterDirection.OUT;



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