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