From fe751a8b7a42cdc42e01c279ce373df72b5d18ad Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Tue, 25 Jan 2011 13:56:14 +0100 Subject: [PATCH] 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 deletion(-) diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala index 62f1d075..49806e03 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 7f899fd3..f3b83f4a 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 3260a3c5..754f92be 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 81978d1a..fdcfdade 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; -- 2.11.4.GIT