# HG changeset patch # User Mark Doliner # Date 1226713864 0 # Node ID 809de3ab85d17bc8dbb077e7cc8aa8199a74d513 # Parent fef608a31864a3c57a86b1035ee7b7415afa28d6 If we're setting swboard here then we need to add the slplink to the linked list diff -r fef608a31864 -r 809de3ab85d1 libpurple/protocols/msn/slp.c --- a/libpurple/protocols/msn/slp.c Fri Nov 14 22:14:19 2008 +0000 +++ b/libpurple/protocols/msn/slp.c Sat Nov 15 01:51:04 2008 +0000 @@ -758,17 +758,17 @@ if (slplink->swboard == NULL) { + /* + * We will need swboard in order to change its flags. If its + * NULL, something has probably gone wrong earlier on. I + * didn't want to do this, but MSN 7 is somehow causing us + * to crash here, I couldn't reproduce it to debug more, + * and people are reporting bugs. Hopefully this doesn't + * cause more crashes. Stu. + */ if (cmdproc->data == NULL) g_warning("msn_p2p_msg cmdproc->data was NULL\n"); else { - /* - * We will swboard in order to change its flags. If its - * NULL, something has probably gone wrong earlier on. I - * didn't want to do this, but MSN 7 is somehow causing us - * to crash here, I couldn't reproduce it to debug more, - * and people are reporting bugs. Hopefully this doesn't - * cause more crashes. Stu. - */ slplink->swboard = (MsnSwitchBoard *)cmdproc->data; slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); } @@ -857,6 +857,7 @@ */ slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink); slplink->swboard = swboard; + slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); } /* If the conversation doesn't exist then this is a custom smiley