Mercurial > pidgin
view plugins/crazychat/crazychat.h @ 13905:4e44ecb866bd
[gaim-migrate @ 16394]
msn_session_sync_users() iterates over the buddy list, following the ->next pointers of the groups, contacts, and buddies. msn_show_sync_issue(), if called, removed the buddy for which it was called, in preparation for the buddy either being added to the server list or confirmed-to-be-removed. This could lead to the buddy pointer being released and ->next therefore being junk.
The buddy is now not removed until the user responds to the action dialog presented via msn_show_sync_issue(). I'm unclear why gtkgaim got away with this exercise in memory stomping but Adium/libgaim crashed every time, but it's safer in any case.
I also changed some foo->bar to gaim_foo_get_bar().
committer: Tailor Script <tailor@pidgin.im>
| author | Evan Schoenberg <evan.s@dreskin.net> |
|---|---|
| date | Sun, 02 Jul 2006 09:37:25 +0000 |
| parents | 8bcd4d4ccef6 |
| children |
line wrap: on
line source
#ifndef __CRAZYCHAT_H__ #define __CRAZYCHAT_H__ #include <glib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <gtk/gtk.h> #include "filter.h" #include "gaim.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif struct crazychat; /* --- type definitions --- */ typedef enum { INVITE = 0, ACCEPT, ACCEPTED, CONNECTED } CC_STATE; /** * Finds the CrazyChat session with the handle. * @param cc global crazychat data structure * @param handle the peer name * @return the cc_session if found, or NULL */ struct cc_session *cc_find_session(struct crazychat *cc, char *handle); /** * Adds a new session with a peer, unless a peer session already exists. * Makes a deep copy of the handle. * @param cc global crazychat data structure * @param handle the peer name * @return the new/old cc_session */ struct cc_session *cc_add_session(struct crazychat *cc, char *handle); /** * Removes a crazychat session with a peer. * @param cc global crazychat data structure * @param session the cc_session to remove */ void cc_remove_session(struct crazychat *cc, struct cc_session *session); #endif /* __CRAZYCHAT_H__ */
