Mercurial > pidgin.yaz
view doc/notify-signals.dox @ 22393:dfe4a3e3336a
serv_got_joined_chat() emits "chat-joined" but it also calls
purple_conversation_new() which emits "conversation-created", so attaching
to both signals would make create_conv and attach_signals to be called twice,
leaking the list of signal ids:
==30871== 67 (43 direct, 24 indirect) bytes in 3 blocks are definitely lost in loss record 94 of 265
==30871== at 0x4006A6E: malloc (vg_replace_malloc.c:207)
==30871== by 0xA1CAF5: g_malloc (in /lib/libglib-2.0.so.0.1400.6)
==30871== by 0xA31B3A: g_slice_alloc (in /lib/libglib-2.0.so.0.1400.6)
==30871== by 0xA32D9A: g_slist_append (in /lib/libglib-2.0.so.0.1400.6)
==30871== by 0x4F1CA4A: attach_signals (notify.c:321)
==30871== by 0x4F1CDCA: conv_created (notify.c:388)
Credit goes to Andrew Gaul for sending me this valgrind trace, blame me if
this breaks anything.
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Mon, 03 Mar 2008 07:03:54 +0000 |
parents | 4511d15a8f80 |
children | 6e1967b0f90b 1a5861622794 |
line wrap: on
line source
/** @page notify-signals Notification Signals @signals @signal displaying-userinfo @signal displaying-email-notification @signal displaying-emails-notification @endsignals @see notify.h @signaldef displaying-userinfo @signalproto void (*displaying_userinfo)(PurpleAccount *account, const char *who, PurpleNotifyUserInfo *user_info); @endsignalproto @signaldesc Emitted before userinfo is handed to the UI to display. @a user_info can be manipulated via the PurpleNotifyUserInfo API in notify.c. @note If adding a PurpleNotifyUserInfoEntry, be sure not to free it -- PurpleNotifyUserInfo assumes responsibility for its objects. @param account The account on which the info was obtained. @param who The screen name of the user whose info is to be displayed. @param user_info The information to be displayed, as PurpleNotifyUserInfoEntry objects @endsignaldef @signaldef displaying-email-notification @signalproto void (*displaying_email_notification)(const char *subject, const char *from, const char *to, const char *url); @endsignalproto @signaldesc Emitted before email notification is handed to the UI to display. @param subject Subject of email being notified of. @param from Who the email is from. @param to Who the email is to. @param url A url to view the email. @since 2.1.0 @endsignaldef @signaldef displaying-emails-notification @signalproto void (*displaying_emails_notification)(const char **subjects, const char **froms, const char **tos, const char **urls, guint count); @endsignalproto @signaldesc Emitted before notification of multiple emails is handed to the UI to display. @param subjects Subjects of emails being notified of. @param froms Who the emails are from. @param tos Who the emails are to. @param urls The urls to view the emails. @param count Number of emails being notified of. @since 2.1.0 @endsignaldef */ // vim: syntax=c.doxygen tw=75 et