STORM-121 FIXED Unify clean up of objects on voice client shutdown so that it happens consistently.

meow-7.2.2
Aimee Linden 2010-09-14 13:16:46 +01:00
parent 73ba1f288d
commit 60d3a46ec6
2 changed files with 26 additions and 16 deletions

View File

@ -386,7 +386,7 @@ LLVivoxVoiceClient::~LLVivoxVoiceClient()
{
}
//----------------------------------------------
//---------------------------------------------------
void LLVivoxVoiceClient::init(LLPumpIO *pump)
{
@ -400,7 +400,8 @@ void LLVivoxVoiceClient::terminate()
{
logout();
connectorShutdown();
closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
cleanUp();
}
else
{
@ -408,6 +409,18 @@ void LLVivoxVoiceClient::terminate()
}
}
//---------------------------------------------------
void LLVivoxVoiceClient::cleanUp()
{
deleteAllSessions();
deleteAllBuddies();
deleteAllVoiceFonts();
deleteVoiceFontTemplates();
}
//---------------------------------------------------
const LLVoiceVersionInfo& LLVivoxVoiceClient::getVersion()
{
return mVoiceVersion;
@ -776,14 +789,10 @@ void LLVivoxVoiceClient::stateMachine()
{
//MARK: stateDisableCleanup
case stateDisableCleanup:
// Clean up and reset everything.
// Clean up and reset everything.
closeSocket();
deleteAllSessions();
deleteAllBuddies();
deleteAllVoiceFonts();
deleteVoiceFontTemplates();
cleanUp();
mConnectorHandle.clear();
mAccountHandle.clear();
mAccountPassword.clear();
mVoiceAccountServerURI.clear();
@ -1675,12 +1684,9 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateLoggedOut
case stateLoggedOut: // logout response received
// Once we're logged out, all these things are invalid.
// Once we're logged out, these things are invalid.
mAccountHandle.clear();
deleteAllSessions();
deleteAllBuddies();
deleteAllVoiceFonts();
deleteVoiceFontTemplates();
cleanUp();
if(mVoiceEnabled && !mRelogRequested)
{
@ -1778,6 +1784,8 @@ void LLVivoxVoiceClient::closeSocket(void)
{
mSocket.reset();
mConnected = false;
mConnectorHandle.clear();
mAccountHandle.clear();
}
void LLVivoxVoiceClient::loginSendMessage()
@ -2370,8 +2378,7 @@ void LLVivoxVoiceClient::giveUp()
{
// All has failed. Clean up and stop trying.
closeSocket();
deleteAllSessions();
deleteAllBuddies();
cleanUp();
setState(stateJail);
}

View File

@ -668,7 +668,10 @@ protected:
private:
LLVoiceVersionInfo mVoiceVersion;
/// Clean up objects created during a voice session.
void cleanUp();
state mState;
bool mSessionTerminateRequested;
bool mRelogRequested;