summaryrefslogtreecommitdiff
path: root/dbind
diff options
context:
space:
mode:
authorMike Gorse <mgorse@novell.com>2010-11-16 06:14:25 -0500
committerMike Gorse <mgorse@novell.com>2010-11-17 07:29:52 -0500
commit56b5b8e5721d2f2ef427e107d5e3bee8dcf69457 (patch)
tree50745606f7542734919d3747b6af61df273c0650 /dbind
parentacfcea02b3d24e20ed9b6276cd1861774e01fa4b (diff)
downloadat-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.c22
-rw-r--r--dbind/dbind-any.h4
-rw-r--r--dbind/dbind.c6
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;