diff options
author | Mike Gorse <mgorse@novell.com> | 2010-11-16 06:14:25 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@novell.com> | 2010-11-17 07:29:52 -0500 |
commit | 56b5b8e5721d2f2ef427e107d5e3bee8dcf69457 (patch) | |
tree | 50745606f7542734919d3747b6af61df273c0650 /dbind | |
parent | acfcea02b3d24e20ed9b6276cd1861774e01fa4b (diff) | |
download | at-spi2-core-56b5b8e5721d2f2ef427e107d5e3bee8dcf69457.tar.gz |
Various component fixes, and fix dbind_method_call_reentrant_va
Diffstat (limited to 'dbind')
-rw-r--r-- | dbind/dbind-any.c | 22 | ||||
-rw-r--r-- | dbind/dbind-any.h | 4 | ||||
-rw-r--r-- | dbind/dbind.c | 6 |
3 files changed, 17 insertions, 15 deletions
diff --git a/dbind/dbind-any.c b/dbind/dbind-any.c index 95dd9abd..8b224480 100644 --- a/dbind/dbind-any.c +++ b/dbind/dbind-any.c @@ -434,7 +434,7 @@ dbind_any_marshal (DBusMessageIter *iter, void dbind_any_marshal_va (DBusMessageIter *iter, const char **arg_types, - va_list args) + va_list *args) { const char *p = *arg_types; @@ -460,16 +460,16 @@ dbind_any_marshal_va (DBusMessageIter *iter, case DBUS_TYPE_UINT16: case DBUS_TYPE_INT32: case DBUS_TYPE_UINT32: - intarg = va_arg (args, int); + intarg = va_arg (*args, int); arg = &intarg; break; case DBUS_TYPE_INT64: case DBUS_TYPE_UINT64: - int64arg = va_arg (args, dbus_int64_t); + int64arg = va_arg (*args, dbus_int64_t); arg = &int64arg; break; case DBUS_TYPE_DOUBLE: - doublearg = va_arg (args, double); + doublearg = va_arg (*args, double); arg = &doublearg; break; /* ptr types */ @@ -478,21 +478,21 @@ dbind_any_marshal_va (DBusMessageIter *iter, case DBUS_TYPE_SIGNATURE: case DBUS_TYPE_ARRAY: case DBUS_TYPE_DICT_ENTRY: - ptrarg = va_arg (args, void *); + ptrarg = va_arg (*args, void *); arg = &ptrarg; break; case DBUS_STRUCT_BEGIN_CHAR: - ptrarg = va_arg (args, void *); + ptrarg = va_arg (*args, void *); arg = ptrarg; break; case DBUS_DICT_ENTRY_BEGIN_CHAR: - ptrarg = va_arg (args, void *); + ptrarg = va_arg (*args, void *); arg = ptrarg; break; case DBUS_TYPE_VARIANT: fprintf (stderr, "No variant support yet - very toolkit specific\n"); - ptrarg = va_arg (args, void *); + ptrarg = va_arg (*args, void *); arg = &ptrarg; break; default: @@ -502,6 +502,8 @@ dbind_any_marshal_va (DBusMessageIter *iter, if (arg != NULL) dbind_any_marshal (iter, &p, &arg); } + if (*arg_types) + *arg_types = p; } } @@ -633,11 +635,11 @@ dbind_any_demarshal (DBusMessageIter *iter, void dbind_any_demarshal_va (DBusMessageIter *iter, const char **arg_types, - va_list args) + va_list *args) { const char *p = *arg_types; for (;*p != '\0';) { - void *arg = va_arg (args, void *); + void *arg = va_arg (*args, void *); dbind_any_demarshal (iter, &p, &arg); } } diff --git a/dbind/dbind-any.h b/dbind/dbind-any.h index 4aa0b953..ae69caad 100644 --- a/dbind/dbind-any.h +++ b/dbind/dbind-any.h @@ -12,7 +12,7 @@ void dbind_any_marshal (DBusMessageIter *iter, void dbind_any_marshal_va (DBusMessageIter *iter, const const char **arg_types, - va_list args); + va_list *args); void dbind_any_demarshal (DBusMessageIter *iter, const char **type, @@ -20,7 +20,7 @@ void dbind_any_demarshal (DBusMessageIter *iter, void dbind_any_demarshal_va (DBusMessageIter *iter, const char **arg_types, - va_list args); + va_list *args); void dbind_any_free (const char *type, void *ptr_to_ptr); diff --git a/dbind/dbind.c b/dbind/dbind.c index 0f301b5f..9f284e92 100644 --- a/dbind/dbind.c +++ b/dbind/dbind.c @@ -94,7 +94,7 @@ dbind_method_call_reentrant_va (DBusConnection *cnx, p = arg_types; dbus_message_iter_init_append (msg, &iter); - dbind_any_marshal_va (&iter, &p, args); + dbind_any_marshal_va (&iter, &p, &args); reply = dbind_send_and_allow_reentry (cnx, msg, err); if (!reply) @@ -112,7 +112,7 @@ dbind_method_call_reentrant_va (DBusConnection *cnx, DBusMessageIter iter; p += 2; dbus_message_iter_init (reply, &iter); - dbind_any_demarshal_va (&iter, &p, args); + dbind_any_demarshal_va (&iter, &p, &args); } success = TRUE; @@ -203,7 +203,7 @@ dbind_emit_signal_va (DBusConnection *cnx, p = arg_types; dbus_message_iter_init_append (msg, &iter); - dbind_any_marshal_va (&iter, &p, args); + dbind_any_marshal_va (&iter, &p, &args); if (!dbus_connection_send (cnx, msg, NULL)) goto out; |