mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 07:38:20 +02:00
2005-06-13 Ross Burton <ross@burtonini.com>.
* glib/dbus-gobject.c: Handle errors on message demarshalling by sending error message back. * glib/dbus-gvalue.c: Initialize return variables.
This commit is contained in:
parent
b539abf9ce
commit
9548df2ce9
3 changed files with 18 additions and 7 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2005-06-13 Ross Burton <ross@burtonini.com>.
|
||||
|
||||
* glib/dbus-gobject.c: Handle errors on message
|
||||
demarshalling by sending error message back.
|
||||
* glib/dbus-gvalue.c: Initialize return variables.
|
||||
|
||||
2005-06-13 Colin Walters <walters@verbum.org>
|
||||
|
||||
* glib/Makefile.am: Fix thinko in last patch.
|
||||
|
|
|
|||
|
|
@ -772,7 +772,8 @@ invoke_object_method (GObject *object,
|
|||
guint n_params;
|
||||
const GType *types;
|
||||
DBusGValueMarshalCtx context;
|
||||
|
||||
GError *error = NULL;
|
||||
|
||||
context.gconnection = DBUS_G_CONNECTION_FROM_CONNECTION (connection);
|
||||
context.proxy = NULL;
|
||||
|
||||
|
|
@ -780,12 +781,16 @@ invoke_object_method (GObject *object,
|
|||
n_params = types_array->len;
|
||||
types = (const GType*) types_array->data;
|
||||
|
||||
value_array = dbus_gvalue_demarshal_message (&context, message, n_params, types, NULL);
|
||||
value_array = dbus_gvalue_demarshal_message (&context, message, n_params, types, &error);
|
||||
if (value_array == NULL)
|
||||
{
|
||||
g_free (in_signature);
|
||||
g_array_free (types_array, TRUE);
|
||||
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
|
||||
reply = dbus_message_new_error (message, "org.freedesktop.DBus.GLib.ErrorError", error->message);
|
||||
dbus_connection_send (connection, reply, NULL);
|
||||
dbus_message_unref (reply);
|
||||
g_error_free (error);
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
}
|
||||
g_array_free (types_array, TRUE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1300,7 +1300,7 @@ marshal_strv (DBusMessageIter *iter,
|
|||
DBusMessageIter subiter;
|
||||
char **array;
|
||||
char **elt;
|
||||
gboolean ret;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
g_assert (G_VALUE_TYPE (value) == g_strv_get_type ());
|
||||
|
||||
|
|
@ -1336,7 +1336,7 @@ marshal_garray_basic (DBusMessageIter *iter,
|
|||
GArray *array;
|
||||
guint elt_size;
|
||||
const char *subsignature_str;
|
||||
gboolean ret;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
elt_gtype = dbus_g_type_get_collection_specialization (G_VALUE_TYPE (value));
|
||||
/* FIXME - this means we can't send an array of DBusGValue right now... */
|
||||
|
|
@ -1417,7 +1417,7 @@ marshal_proxy_array (DBusMessageIter *iter,
|
|||
DBusMessageIter subiter;
|
||||
GPtrArray *array;
|
||||
const char *subsignature_str;
|
||||
gboolean ret;
|
||||
gboolean ret = FALSE;
|
||||
guint i;
|
||||
|
||||
subsignature_str = dbus_gtype_to_signature (DBUS_TYPE_G_PROXY);
|
||||
|
|
@ -1553,7 +1553,7 @@ marshal_variant (DBusMessageIter *iter,
|
|||
DBusMessageIter subiter;
|
||||
char *variant_sig;
|
||||
GValue *real_value;
|
||||
gboolean ret;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
real_value = g_value_get_boxed (value);
|
||||
value_gtype = G_VALUE_TYPE (real_value);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue