locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp
branchRCL_3
changeset 18 54d74d217042
parent 0 9cfd9a3ee49c
child 28 cf8bf9651775
child 49 5f20f71a57a3
child 57 3267d9ea3e98
--- a/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp	Wed Mar 31 23:44:31 2010 +0300
+++ b/locationrequestmgmt/networkrequesthandler/src/EPos_CPosDialogCtrl.cpp	Wed Apr 14 17:26:05 2010 +0300
@@ -78,6 +78,8 @@
     for (TInt i = 0; i < count; i++)
         {
         DoCompleteRequest(0, KErrServerTerminated);
+        // Delete the pointer items
+        delete iRequestQueue[i].iRequestInfo;
         }
 
     iNotifier.Close();
@@ -277,16 +279,8 @@
     TInt aIndex,
     TInt aCompletionCode)
     {
-    TRequest request = iRequestQueue[aIndex];
-    if (request.iType == TPosQNInputData::ENotification)
-        {
-        delete request.iRequestInfo;
-        }
-    else
-        {
-        TRequestStatus* status = request.iStatus;
-        User::RequestComplete(status, aCompletionCode);
-        }
+    TRequestStatus* status = iRequestQueue[aIndex].iStatus;
+    User::RequestComplete(status, aCompletionCode);
     iRequestQueue.Remove(aIndex);
     iRequestQueue.Compress();
     }
@@ -371,10 +365,22 @@
         delete reqStackBuf;
         reqStackBuf = NULL;
 
-        iNotifier.StartNotifierAndGetResponse(
-            iStatus, KNotifierUid, nullPtr, nullPtr);
-        SetActive();
-
+        if (data.iType == TPosQNInputData::ENotification) // We dont expect a resonse from a notfication
+            {
+            iNotifier.StartNotifier(KNotifierUid, nullPtr, nullPtr);
+            
+            // As we wont be getting a response remove from the notification list
+            delete iRequestQueue[0].iRequestInfo;
+            iRequestQueue.Remove(0);
+            iRequestQueue.Compress();
+            }
+        else
+            {
+            iNotifier.StartNotifierAndGetResponse(
+                    iStatus, KNotifierUid, nullPtr, nullPtr);
+            SetActive();
+            }
+        
         err = iNotifier.UpdateNotifier(KNotifierUid, *buffer, nullPtr);
         if (err != KErrNone)
             {