--- a/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Wed Jun 23 19:38:32 2010 +0300
+++ b/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp Tue Jul 06 15:43:30 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)