diff options
author | Colin Walters <walters@verbum.org> | 2005-06-26 17:02:09 +0000 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2005-06-26 17:02:09 +0000 |
commit | df901b528bc1e1edd96e9e91b94c9c9b795b8ffd (patch) | |
tree | f455e436a057d8525edb4d29067674eb781331da /glib/dbus-gobject.c | |
parent | c904e1e3a695f8f15f098d9316ead6f0db637780 (diff) |
2005-06-26 Colin Walters <walters@verbum.org>
* glib/dbus-glib.c (dbus_set_g_error): Delete.
(dbus_g_error_set): New public function from its ashes; used by
both service-side method implementation and GLib bindings
internals.
(dbus_g_error_has_name, dbus_g_error_get_name): New function.
(_dbus_glib_test): Add some tests.
* test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
* test/glib/test-service-glib.c (my_object_throw_error): Use
dbus_g_error_set.
* glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
errors thrown by dbus_g_error_set.
* glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
* glib/dbus-gparser.c (validate_signature): Ditto.
* glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
(dbus_g_proxy_end_call_internal): Ditto.
* glib/Makefile.am: Generate dbus-glib-error-switch.h, which
converts DBUS_ERROR_x to DBUS_GERROR_x.
(libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
* doc/TODO: Remove error TODO.
* doc/dbus-tutorial.xml: Update with documentation about error
handling.
* dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
Diffstat (limited to 'glib/dbus-gobject.c')
-rw-r--r-- | glib/dbus-gobject.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/glib/dbus-gobject.c b/glib/dbus-gobject.c index 87926a05..00528906 100644 --- a/glib/dbus-gobject.c +++ b/glib/dbus-gobject.c @@ -745,10 +745,17 @@ gerror_to_dbus_error_message (const DBusGObjectInfo *object_info, } else { - char *error_name; - error_name = gerror_domaincode_to_dbus_error_name (object_info, error->domain, error->code); - reply = dbus_message_new_error (message, error_name, error->message); - g_free (error_name); + if (error->domain == DBUS_GERROR) + reply = dbus_message_new_error (message, + dbus_g_error_get_name (error), + error->message); + else + { + char *error_name; + error_name = gerror_domaincode_to_dbus_error_name (object_info, error->domain, error->code); + reply = dbus_message_new_error (message, error_name, error->message); + g_free (error_name); + } } return reply; } |