Changeset 174:dd14884590d5 in qutecom-coip


Ignore:
Timestamp:
Mar 27, 2010 7:19:37 PM (3 years ago)
Author:
laurent
Branch:
default
Message:

prevent crash on quit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libs/coipmanager/plugins/connectmanager/libpurple/PurpleConnectedState.cpp

    r146 r174  
    5555 
    5656bool PurpleConnectedState::disconnectCbk(void * data) { 
    57         QMutexLocker lock(_mutex); 
     57        if(_mutex) 
     58        { 
     59                QMutexLocker lock(_mutex); 
    5860 
    59         Account * account = ((misc_t *)data)->account; 
    60         PurpleAccount *pAccount = purple_accounts_find(PurpleWrapper::purpleLogin(account).c_str(), 
     61                Account * account = ((misc_t *)data)->account; 
     62                PurpleAccount *pAccount = purple_accounts_find(PurpleWrapper::purpleLogin(account).c_str(), 
    6163                PurpleIMPrcl::getPrclId(account->getAccountType())); 
    6264 
    63         if (!pAccount) { 
    64                 LOG_ERROR("Account not in LibPurple database"); 
    65                 return FALSE; 
     65                if (!pAccount) { 
     66                        LOG_ERROR("Account not in LibPurple database"); 
     67                        return FALSE; 
     68                } 
     69 
     70                if (purple_account_get_enabled(pAccount, purple_core_get_ui())) { 
     71                        purple_account_set_enabled(pAccount, purple_core_get_ui(), FALSE); 
     72                } 
     73 
     74                purple_account_disconnect(pAccount); 
     75 
     76                purple_timeout_remove(((misc_t *)data)->cbk_id); 
     77                free((misc_t *)data); 
    6678        } 
    67  
    68         if (purple_account_get_enabled(pAccount, purple_core_get_ui())) { 
    69                 purple_account_set_enabled(pAccount, purple_core_get_ui(), FALSE); 
    70         } 
    71  
    72         purple_account_disconnect(pAccount); 
    73  
    74         purple_timeout_remove(((misc_t *)data)->cbk_id); 
    75         free((misc_t *)data); 
    7679 
    7780        return TRUE; 
Note: See TracChangeset for help on using the changeset viewer.