diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | bus/driver.c | 9 | ||||
-rw-r--r-- | test/glib/test-service-glib.c | 36 |
3 files changed, 34 insertions, 22 deletions
@@ -1,3 +1,14 @@ +2005-03-14 Colin Walters <walters@verbum.org> + + * bus/driver.c (write_args_for_direction): Use + _dbus_string_get_const_data to retrieve string; + _dbus_string_get_const_data_len doesn't actually return + a NULL-terminated substring. + + * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. + (main): Change to use org_freedesktop_DBus_request_name + instead of using g_proxy_begin_call/end_call. + 2005-03-15 Joe Shaw <joeshaw@novell.com> * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when diff --git a/bus/driver.c b/bus/driver.c index 8f627787..2a58d807 100644 --- a/bus/driver.c +++ b/bus/driver.c @@ -1117,7 +1117,14 @@ write_args_for_direction (DBusString *xml, int start, len; _dbus_type_reader_get_signature (&typereader, &subsig, &start, &len); - if (!_dbus_string_append_printf (xml, " <arg direction=\"%s\" type=\"%s\"/>\n", in ? "in" : "out", _dbus_string_get_const_data_len (subsig, start, len))) + if (!_dbus_string_append_printf (xml, " <arg direction=\"%s\" type=\"", + in ? "in" : "out")) + goto oom; + if (!_dbus_string_append_len (xml, + _dbus_string_get_const_data (subsig) + start, + len)) + goto oom; + if (!_dbus_string_append (xml, "\"/>\n")) goto oom; _dbus_type_reader_next (&typereader); diff --git a/test/glib/test-service-glib.c b/test/glib/test-service-glib.c index a2e36589..fef8a9da 100644 --- a/test/glib/test-service-glib.c +++ b/test/glib/test-service-glib.c @@ -1,5 +1,9 @@ /* -*- mode: C; c-file-style: "gnu" -*- */ #include <dbus/dbus-glib.h> +/* NOTE - outside of D-BUS core this would be + * include <dbus/dbus-glib-bindings.h> + */ +#include "glib/dbus-glib-bindings.h" #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -190,6 +194,8 @@ my_object_many_args (MyObject *obj, guint32 x, const char *str, double trouble, static GMainLoop *loop; +#define TEST_SERVICE_NAME "org.freedesktop.DBus.TestSuiteGLibService" + int main (int argc, char **argv) { @@ -197,9 +203,7 @@ main (int argc, char **argv) GError *error; GObject *obj; DBusGProxy *driver_proxy; - DBusGPendingCall *call; - const char *v_STRING; - guint32 v_UINT32; + guint32 request_name_ret; g_type_init (); @@ -231,34 +235,24 @@ main (int argc, char **argv) DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); - v_STRING = "org.freedesktop.DBus.TestSuiteGLibService"; - v_UINT32 = 0; - call = dbus_g_proxy_begin_call (driver_proxy, "RequestName", - DBUS_TYPE_STRING, - &v_STRING, - DBUS_TYPE_UINT32, - &v_UINT32, - DBUS_TYPE_INVALID); - if (!dbus_g_proxy_end_call (driver_proxy, call, - &error, DBUS_TYPE_UINT32, &v_UINT32, - DBUS_TYPE_INVALID)) + if (!org_freedesktop_DBus_request_name (driver_proxy, + TEST_SERVICE_NAME, + 0, &request_name_ret, &error)) { g_assert (error != NULL); g_printerr ("Failed to get name: %s\n", - error->message); - g_error_free (error); + error->message); + g_clear_error (&error); exit (1); } - g_assert (error == NULL); - dbus_g_pending_call_unref (call); - if (!(v_UINT32 == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)) + if (!(request_name_ret == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)) { - g_printerr ("Got result code %u from requesting name\n", v_UINT32); + g_printerr ("Got result code %u from requesting name\n", request_name_ret); exit (1); } - g_printerr ("GLib test service has name '%s'\n", v_STRING); + g_printerr ("GLib test service has name '%s'\n", TEST_SERVICE_NAME); g_printerr ("GLib test service entering main loop\n"); g_main_loop_run (loop); |