This patch corrects type casts of universal data item in the generated code. It is an ugly hack. Generator has to be fixed instead. ================================================================================ --- libpurple/dbus-bindings.c +++ libpurple/dbus-bindings.c @@ -3576,7 +3576,7 @@ CHECK_ERROR(error_DBUS); PURPLE_DBUS_ID_TO_POINTER(conv, conv_ID, PurpleConversation, error_DBUS); key = (key && key[0]) ? key : NULL; - purple_conversation_set_data(conv, key, data); + purple_conversation_set_data(conv, key, GINT_TO_POINTER(data)); reply_DBUS = dbus_message_new_method_return (message_DBUS); dbus_message_append_args(reply_DBUS, DBUS_TYPE_INVALID); return reply_DBUS; @@ -3593,7 +3593,7 @@ CHECK_ERROR(error_DBUS); PURPLE_DBUS_ID_TO_POINTER(conv, conv_ID, PurpleConversation, error_DBUS); key = (key && key[0]) ? key : NULL; - RESULT = purple_conversation_get_data(conv, key); + RESULT = GINT_TO_POINTER(purple_conversation_get_data(conv, key)); reply_DBUS = dbus_message_new_method_return (message_DBUS); dbus_message_append_args(reply_DBUS, DBUS_TYPE_INT32, &RESULT, DBUS_TYPE_INVALID); return reply_DBUS; @@ -4741,7 +4741,7 @@ dbus_int32_t RESULT; dbus_message_get_args(message_DBUS, error_DBUS, DBUS_TYPE_UINT32, &unused, DBUS_TYPE_INVALID); CHECK_ERROR(error_DBUS); - RESULT = purple_core_quit_cb(unused); + RESULT = purple_core_quit_cb(GINT_TO_POINTER(unused)); reply_DBUS = dbus_message_new_method_return (message_DBUS); dbus_message_append_args(reply_DBUS, DBUS_TYPE_INT32, &RESULT, DBUS_TYPE_INVALID); return reply_DBUS; @@ -6479,7 +6479,7 @@ dbus_message_get_args(message_DBUS, error_DBUS, DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &value, DBUS_TYPE_INVALID); CHECK_ERROR(error_DBUS); name = (name && name[0]) ? name : NULL; - purple_prefs_set_generic(name, value); + purple_prefs_set_generic(name, GINT_TO_POINTER(value)); reply_DBUS = dbus_message_new_method_return (message_DBUS); dbus_message_append_args(reply_DBUS, DBUS_TYPE_INVALID); return reply_DBUS;