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