policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp
changeset 66 08c8318ec9cb
parent 64 910464db1b65
child 73 ae69c2e8bc34
--- a/policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp	Fri Sep 03 22:35:56 2010 +0530
+++ b/policymanagement/policyengine/centreptoolserver/src/RepositorySession.cpp	Fri Sep 17 19:59:15 2010 +0530
@@ -423,8 +423,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeMeta * setting = CRangeMeta::NewL( aCompareValue, 0, aMask, KBackupBitMask);
-		aSettings.AppendL( setting );
-		iRangeMetas.AppendL( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeMetas.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+		        
+		        }
+		    }
 	}
 }
 
@@ -533,8 +552,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeSetting * setting = CRangeSetting::NewL( aRangeStart, aRangeEnd, 0);
-		aSettings.Append( setting );
-		iRangeSettings.Append( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeSettings.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+
+		        }
+		    }
 	}	
 	
 	iRangeSettings.Sort( linearOrder);
@@ -572,8 +610,27 @@
 	if ( !aSettings.Count() )
 	{	
 		CRangeSetting * setting = CRangeSetting::NewL( aCompareValue, 0, aMask);
-		aSettings.Append( setting );
-		iRangeSettings.Append( setting);
+		TInt err = KErrNone;
+		TRAP(err, aSettings.AppendL( setting ));
+		if(err != KErrNone)
+		    {
+		    delete setting;
+			User::Leave( err );
+		    }
+		else
+		    {
+		    TRAP(err, iRangeSettings.AppendL( setting));
+		    if(err != KErrNone)
+		        {
+		        TInt indx = aSettings.Find( setting );
+		        if(indx != KErrNotFound)
+		            {
+		            aSettings.Remove(indx);
+					User::Leave( err );
+		            }
+
+		        }
+		    }
 	}