va_list args)
{
char *p = *arg_types;
+
+ /* Guard against null arg types
+ Fix for - http://bugs.freedesktop.org/show_bug.cgi?id=23027
+ */
+ if (p == NULL)
+ p = "";
+
{
/* special case base-types since we need to walk the stack worse-luck */
for (;*p != '\0' && *p != '=';) {
/*---------------------------------------------------------------------------*/
-static void emit(SpiRegistry *reg, const char *itf, const char *name, int ftype, ...)
+static void emit(SpiRegistry *reg, const char *itf, const char *name, const char *arg_types, ...)
{
va_list arg;
- va_start(arg, ftype);
- dbind_emit_signal_va (reg->bus, SPI_DBUS_PATH_REGISTRY, itf, name, NULL, ftype, arg);
+ va_start(arg, arg_types);
+ dbind_emit_signal_va (reg->bus, SPI_DBUS_PATH_REGISTRY, itf, name, NULL, arg_types, arg);
va_end(arg);
}
emit (reg,
SPI_DBUS_INTERFACE_REGISTRY,
"updateApplications",
- DBUS_TYPE_INT32,
+ "is",
&add,
- DBUS_TYPE_STRING,
- &app,
- DBUS_TYPE_INVALID);
+ &app
+ );
}
}
emit (reg,
SPI_DBUS_INTERFACE_REGISTRY,
"updateApplications",
- DBUS_TYPE_INT32,
+ "is",
&remove,
- DBUS_TYPE_STRING,
- &app,
- DBUS_TYPE_INVALID);
+ &app
+ );
}
}