--- 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 );
+ }
+
+ }
+ }
}