view PLUGIN_HOWTO @ 31203:258fec7797b9

Attempt to fix a crash I've seen a few times. I think it happens if you have a conversation window open with a MySpace buddy, then your MySpace account goes offline. We apparently call the prpl's status_text prpl function to get the status text for the buddy, but the connection is offline. I don't know if that's something we SHOULD do or not... but other prpl's seem to handle this, at least. 1. Use buddy->account instead of buddy->account->gc->proto_data->account, since the former should always exist and later doesn't exist if the account is offline. This was leading to a null pointer dereference. 2. Pass FALSE to msim_get_user_from_buddy() so that it will stop creating an MsimUser struct if one doesn't exist. Creating it didn't accomplish anything, and I feel like it might never get freed if the account is already offline. 3. Put the checks for user->headline and user->display_name in a big if condition, so we won't try to grab that info if user is NULL
author Mark Doliner <mark@kingant.net>
date Mon, 14 Feb 2011 01:01:37 +0000
parents db5a58aabe38
children
line wrap: on
line source

For information on writing a plugin for Purple, Pidgin or Finch, go
http://developer.pidgin.im and click on API.  From there, see the
HOWTOs in the "Related Pages" section.

You can also generate this documentation locally by installing
doxygen and graphviz dot, then running "make docs" in the
source tree.  The documentation will be in the docs/html directory.