diff -r dcf0eedfc1a3 -r d189ee25cf9d ipsservices/ipssosplugin/src/ipsplgdeletelocal.cpp
--- a/ipsservices/ipssosplugin/src/ipsplgdeletelocal.cpp Thu Aug 19 09:38:05 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgdeletelocal.cpp Tue Aug 31 15:04:17 2010 +0300
@@ -42,11 +42,20 @@
// ----------------------------------------------------------------------------
//
void CIpsPlgDeleteLocal::ConstructL(
- CMsvEntrySelection& aMessageSelection )
+ CMsvEntrySelection* aMessageSelection )
{
FUNC_LOG;
+ //
+ // Start cache manager to prune messages
+ //
CImCacheManager::ConstructL();
- iMessageSelection = aMessageSelection.CopyL();
+ //
+ iMessageSelection = new (ELeave) CMsvEntrySelection();
+ for ( TInt i=0; iCount(); i++ )
+ {
+ iMessageSelection->AppendL( aMessageSelection->At(i) );
+ }
+ //
StartL( *iMessageSelection, iObserverRequestStatus );
}
@@ -55,7 +64,7 @@
// ----------------------------------------------------------------------------
//
CIpsPlgDeleteLocal* CIpsPlgDeleteLocal::NewL(
- CMsvEntrySelection& aMessageSelection,
+ CMsvEntrySelection* aMessageSelection,
CMsvSession& aMsvSession,
TRequestStatus& aObserverRequestStatus)
{
@@ -89,11 +98,13 @@
TBool CIpsPlgDeleteLocal::Filter() const
{
FUNC_LOG;
- if ( iMessageSelection->Find( iCurrentEntry->Entry().Id() )
- > KErrNotFound )
+ //
+ if ( iMessageSelection->Find(
+ iCurrentEntry->Entry().Id() ) == KErrNone )
{
return ETrue;
}
+ //
return EFalse;
}