diff -r 1367103c24e2 -r 696bfeff199e messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp --- a/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp Mon Jun 21 15:36:19 2010 +0300 +++ b/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp Thu Jul 15 18:34:37 2010 +0300 @@ -91,6 +91,7 @@ iControlArray = CCoeControlArray::NewL( *this ); iControlArray->SetControlsOwnedExternally( EFalse ); iPriorityIndicator = EFalse; + iMessageIterator = NULL; UpdateVarientId(); SetComponentsToInheritVisibility( ETrue ); ActivateL(); @@ -165,12 +166,14 @@ EXPORT_C void CMsgNaviPaneControl::SetNavigationIndicatorL( CMsvSession& aSession, const TMsvEntry& aCurrentMessage ) { - delete iMessageIterator; - iMessageIterator = NULL; - - iMessageIterator = CMessageIterator::NewL( aSession, aCurrentMessage ); - iMessageIterator->SetMessageIteratorObserver( this ); - + if(!iMessageIterator) + { + // Iterator will be deleted once in the destructer only. + //deleting and creating it again is degrading the performance + + iMessageIterator = CMessageIterator::NewL( aSession, aCurrentMessage ); + iMessageIterator->SetMessageIteratorObserver( this ); + } UpdateNavigationIndicatorsL(); } @@ -767,4 +770,13 @@ } } } + +// ---------------------------------------------------------------------------- +// CMsgNaviPaneControl::GetNavigationIndicator +// ---------------------------------------------------------------------------- +// +EXPORT_C CMessageIterator* CMsgNaviPaneControl::GetMessageIterator() + { + return iMessageIterator; + } // End of File