diff -r 1ddbe54d0645 -r ccb4f6b3db21 sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp --- a/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Thu Aug 19 11:09:10 2010 +0300 +++ b/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Tue Aug 31 16:29:05 2010 +0300 @@ -278,8 +278,6 @@ 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; @@ -295,7 +293,6 @@ { iCurrentMessage->Complete(aError); DeleteAdaptationMessage(); - iCurrentMessage = NULL; } while( (iPendingEmergencyRequestsQueue.Count() > 0 )) @@ -303,7 +300,6 @@ Dequeue(iCurrentMessage); iCurrentMessage->Complete(aError); DeleteAdaptationMessage(); - iCurrentMessage = NULL; } return KErrNone; @@ -316,7 +312,6 @@ { iCurrentMessage->Complete(KErrCancel); DeleteAdaptationMessage(); - iCurrentMessage = NULL; } while( (iPendingEmergencyRequestsQueue.Count() > 0 )) @@ -324,7 +319,6 @@ Dequeue(iCurrentMessage); iCurrentMessage->Complete(KErrCancel); DeleteAdaptationMessage(); - iCurrentMessage = NULL; } } @@ -349,7 +343,8 @@ */ void CEmergencyCallRfAdaptation::DeleteAdaptationMessage() { - if(iCurrentMessage->IsMessageReserved()) + //Do not delete iCurrentMessage if it is owned by iAdaptationReservedMessageArray. + if(iCurrentMessage->IsMessageReserved()) { iCurrentMessage->UnsetMessageStatus(EMsgInUse); ++iReserveMsgCount; @@ -357,7 +352,8 @@ else { delete iCurrentMessage; - } + } + iCurrentMessage = NULL; } void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)