--- 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)