diff -r ccb4f6b3db21 -r 8cb079868133 sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp --- a/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Tue Aug 31 16:29:05 2010 +0300 +++ b/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Wed Sep 01 12:34:26 2010 +0100 @@ -278,6 +278,8 @@ DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests processed the request with funtion id: %d", iCurrentMessage->Function()); iCurrentMessage->Complete(iStatus.Int()); DeleteAdaptationMessage(); + iCurrentMessage = NULL; + if( (iPendingEmergencyRequestsQueue.Count()) > 0 ) { CEmergencyAdaptationMessage *messageCopy = NULL; @@ -293,6 +295,7 @@ { iCurrentMessage->Complete(aError); DeleteAdaptationMessage(); + iCurrentMessage = NULL; } while( (iPendingEmergencyRequestsQueue.Count() > 0 )) @@ -300,6 +303,7 @@ Dequeue(iCurrentMessage); iCurrentMessage->Complete(aError); DeleteAdaptationMessage(); + iCurrentMessage = NULL; } return KErrNone; @@ -312,6 +316,7 @@ { iCurrentMessage->Complete(KErrCancel); DeleteAdaptationMessage(); + iCurrentMessage = NULL; } while( (iPendingEmergencyRequestsQueue.Count() > 0 )) @@ -319,6 +324,7 @@ Dequeue(iCurrentMessage); iCurrentMessage->Complete(KErrCancel); DeleteAdaptationMessage(); + iCurrentMessage = NULL; } } @@ -343,8 +349,7 @@ */ void CEmergencyCallRfAdaptation::DeleteAdaptationMessage() { - //Do not delete iCurrentMessage if it is owned by iAdaptationReservedMessageArray. - if(iCurrentMessage->IsMessageReserved()) + if(iCurrentMessage->IsMessageReserved()) { iCurrentMessage->UnsetMessageStatus(EMsgInUse); ++iReserveMsgCount; @@ -352,8 +357,7 @@ else { delete iCurrentMessage; - } - iCurrentMessage = NULL; + } } void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)