realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp
changeset 42 69df6ed78a6a
parent 37 0295359a7673
child 48 e3fccba1f02f
--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp	Fri Aug 06 15:14:04 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp	Mon Aug 23 17:50:26 2010 +0300
@@ -396,7 +396,14 @@
     	{
     	return EFalse;
     	}
-
+    
+      if((aError != KErrNone) && item->HasQueuedUpdate())
+        {
+        PROFILE_DEBUG4("ProfileServerCore::ProceedRegistration HasQueuedUpdate, err",
+			item->HasQueuedUpdate(), aError)
+        return EFalse;
+        }
+    
     if ( ShouldChangeIap(item->UsedProfile(), aError) && 
     	 !item->SnapRetryCountReached() )
         {
@@ -1546,6 +1553,7 @@
     if (index != KErrNotFound)
         {
         iObservers.Remove(index);
+        iObservers.Compress();
         }
 
     for (TInt i = 0; i < iProfileCache.Count(); i ++)
@@ -1926,6 +1934,7 @@
     if (index >= 0)
     	{
     	iProfileCache.Remove(index);
+    	iProfileCache.Compress();
     	}
 	}
 
@@ -1942,7 +1951,9 @@
 			{
 			CSipAlrMigrationController* unused = iMigrationControllers[i];
 			iMigrationControllers.Remove(i);
+			iMigrationControllers.Compress();
 			delete unused;
+			unused = NULL;
 			}
 		}
 	}