# HG changeset patch # User Paul Aurich # Date 1242972072 0 # Node ID f2e4bc583e52e4c0e73b8c6666a8a79b42395d6e # Parent 74c9f4f7982589a3ee9b5cc06fbbfbb8b1cec10a Duh, it helps to use the right marshallers. diff -r 74c9f4f79825 -r f2e4bc583e52 libpurple/protocols/jabber/libxmpp.c --- a/libpurple/protocols/jabber/libxmpp.c Fri May 22 05:31:46 2009 +0000 +++ b/libpurple/protocols/jabber/libxmpp.c Fri May 22 06:01:12 2009 +0000 @@ -141,7 +141,7 @@ purple_value_new_outgoing(PURPLE_TYPE_STRING)); purple_signal_register(plugin, "jabber-receiving-message", - purple_marshal_BOOLEAN__POINTER_POINTER_POINTER, + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER, purple_value_new(PURPLE_TYPE_BOOLEAN), 6, purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONNECTION), purple_value_new(PURPLE_TYPE_STRING), /* type */ @@ -169,13 +169,13 @@ purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_XMLNODE)); /* child */ purple_signal_register(plugin, "jabber-register-namespace-watcher", - purple_marshal_VOID__POINTER_POINTER_POINTER, + purple_marshal_VOID__POINTER_POINTER, NULL, 2, purple_value_new(PURPLE_TYPE_STRING), /* node */ purple_value_new(PURPLE_TYPE_STRING)); /* namespace */ purple_signal_register(plugin, "jabber-unregister-namespace-watcher", - purple_marshal_VOID__POINTER_POINTER_POINTER, + purple_marshal_VOID__POINTER_POINTER, NULL, 2, purple_value_new(PURPLE_TYPE_STRING), /* node */ purple_value_new(PURPLE_TYPE_STRING)); /* namespace */ diff -r 74c9f4f79825 -r f2e4bc583e52 libpurple/signals.c --- a/libpurple/signals.c Fri May 22 05:31:46 2009 +0000 +++ b/libpurple/signals.c Fri May 22 06:01:12 2009 +0000 @@ -975,6 +975,26 @@ } void +purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER( + PurpleCallback cb, va_list args, void *data, void **return_val) +{ + gboolean ret_val; + void *arg1 = va_arg(args, void *); + void *arg2 = va_arg(args, void *); + void *arg3 = va_arg(args, void *); + void *arg4 = va_arg(args, void *); + void *arg5 = va_arg(args, void *); + void *arg6 = va_arg(args, void *); + + ret_val = + ((gboolean (*)(void *, void *, void *, void *, void *, void *, void *))cb)( + arg1, arg2, arg3, arg4, arg5, arg6, data); + + if (return_val != NULL) + *return_val = GINT_TO_POINTER(ret_val); +} + +void purple_marshal_BOOLEAN__INT_POINTER(PurpleCallback cb, va_list args, void *data, void **return_val) { diff -r 74c9f4f79825 -r f2e4bc583e52 libpurple/signals.h --- a/libpurple/signals.h Fri May 22 05:31:46 2009 +0000 +++ b/libpurple/signals.h Fri May 22 06:01:12 2009 +0000 @@ -349,6 +349,8 @@ PurpleCallback cb, va_list args, void *data, void **return_val); void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT( PurpleCallback cb, va_list args, void *data, void **return_val); +void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER( + PurpleCallback cb, va_list args, void *data, void **return_val); void purple_marshal_BOOLEAN__INT_POINTER( PurpleCallback cb, va_list args, void *data, void **return_val);