# HG changeset patch # User John Bailey # Date 1302982028 0 # Node ID 0e7c5fe661e5a3951c40585c2d47ebf5cb212c0f # Parent 32a00b76ce493c03397ad7a55943441b269c7299 Restructure that patch a bit. The marshal function should have been with all the others, even if it's only used in Pidgin. It may be useful for other API in the future. Refs #12599. diff -r 32a00b76ce49 -r 0e7c5fe661e5 libpurple/signals.c --- a/libpurple/signals.c Sat Apr 16 18:56:17 2011 +0000 +++ b/libpurple/signals.c Sat Apr 16 19:27:08 2011 +0000 @@ -880,6 +880,20 @@ } void +purple_marshal_BOOLEAN__POINTER_BOOLEAN(PurpleCallback cb, va_list args, + void *data, void **return_val) +{ + gboolean ret_val; + void *arg1 = va_arg(args, void *); + gboolean arg2 = va_arg(args, gboolean); + + ret_val = ((gboolean (*)(void *, gboolean, void *))cb)(arg1, arg2, data); + + if (return_val != NULL) + *return_val = GINT_TO_POINTER(ret_val); +} + +void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args, void *data, void **return_val) { diff -r 32a00b76ce49 -r 0e7c5fe661e5 libpurple/signals.h --- a/libpurple/signals.h Sat Apr 16 18:56:17 2011 +0000 +++ b/libpurple/signals.h Sat Apr 16 19:27:08 2011 +0000 @@ -339,6 +339,8 @@ PurpleCallback cb, va_list args, void *data, void **return_val); void purple_marshal_BOOLEAN__POINTER_POINTER( PurpleCallback cb, va_list args, void *data, void **return_val); +void purple_marshal_BOOLEAN__POINTER_BOOLEAN( + PurpleCallback cb, va_list args, void *data, void **return_val); void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER( PurpleCallback cb, va_list args, void *data, void **return_val); void purple_marshal_BOOLEAN__POINTER_POINTER_UINT( diff -r 32a00b76ce49 -r 0e7c5fe661e5 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Sat Apr 16 18:56:17 2011 +0000 +++ b/pidgin/gtkconv.c Sat Apr 16 19:27:08 2011 +0000 @@ -7842,20 +7842,6 @@ return &handle; } -static void -pidgin_marshal_BOOLEAN__POINTER_BOOLEAN(PurpleCallback cb, va_list args, - void *data, void **return_val) -{ - gboolean ret_val; - void *arg1 = va_arg(args, void *); - gboolean arg2 = va_arg(args, gboolean); - - ret_val = ((gboolean (*)(void *, gboolean, void *))cb)(arg1, arg2, data); - - if (return_val != NULL) - *return_val = GINT_TO_POINTER(ret_val); -} - void pidgin_conversations_init(void) { @@ -8043,7 +8029,7 @@ "PidginConversation *")); purple_signal_register(handle, "chat-nick-autocomplete", - pidgin_marshal_BOOLEAN__POINTER_BOOLEAN, + purple_marshal_BOOLEAN__POINTER_BOOLEAN, purple_value_new(PURPLE_TYPE_BOOLEAN), 1, purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONVERSATION));