purple_notify_user_info_destroy

Etan Reisner pidgin at unreliablesource.net
Thu May 20 23:25:11 EDT 2010


On Thu, May 20, 2010 at 10:47:58AM +0600, Анатолий Стяпшин wrote:
> hello, I have one little question about libpurple:
> 
> I call:
> 
>    1. *serv_get_info()*
> 
> when I recieve user_info:
> 
>    1. static void * *notify_userinfo(*PurpleConnection *gc, const char *who,
>    PurpleNotifyUserInfo *user_info) {
>    2.     purple_notify_user_info_destroy(user_info);
>    3.     return 0;
>    4. }
> 
> and it fails:
> 
>    1. ** (process:27702): CRITICAL **:
>    purple_notify_user_info_entry_destroy: assertion `user_info_entry != NULL'
>    failed
>
> not even:
> 
>    1. if(user_info) {
>    2.     purple_notify_user_info_destroy(user_info);
>    3. }
> 
> helps.
> 
> I am receiving user_info, it is not NULL, I can get some values in it, but I
> cant delete it in proper way. What am I doing wrong? Please help

Your call isn't failing, not directly. Notice you are calling
purple_notify_user_info_destroy and the assertion is coming from
purple_notify_user_info_*entry*_destroy. This sounds like an incorrect
PurpleNotifyUserInfo struct is involved, or there is some general memory
corruption going on. Can you inspect the user_info entry in gdb in your
notify_userinfo function and see if the entries list appears to be
correct? What's the stack trace that gets to your function?

    -Etan




More information about the Devel mailing list