diff -r 34879f5cfc63 -r 2666d9724c76 phonebookengines/VirtualPhonebook/VPbkCntModel/src/CViewBase.cpp --- a/phonebookengines/VirtualPhonebook/VPbkCntModel/src/CViewBase.cpp Mon Jun 21 15:24:27 2010 +0300 +++ b/phonebookengines/VirtualPhonebook/VPbkCntModel/src/CViewBase.cpp Thu Jul 15 18:22:55 2010 +0300 @@ -246,7 +246,7 @@ { TInt result = KErrNotFound; - if (&aContactLink.ContactStore() == &ContactStore()) + if (&aContactLink.ContactStore() == &ContactStore() && iView ) { const CContactLink& link = static_cast(aContactLink); result = iView->FindL(link.ContactId()); @@ -773,8 +773,16 @@ const CVPbkContactViewDefinition& aViewDefinition, const MVPbkFieldTypeList& aSortOrder ) { - iCurrentContact = CViewContact::NewL( *this, aSortOrder ); - + + CViewContact* vievContact = CViewContact::NewL( *this, aSortOrder ); + if ( iCurrentContact ) + { + delete iCurrentContact; + iCurrentContact = NULL; + } + iCurrentContact = vievContact; + vievContact = NULL; + RContactViewSortOrder viewSortOrder = CreateSortOrderL( aSortOrder ); CleanupClosePushL( viewSortOrder ); @@ -795,8 +803,15 @@ CleanupStack::PopAndDestroy(); // viewSortOrder - iEventLink = CContactLink::NewLC( iParentStore, KNullContactId ); - CleanupStack::Pop( iEventLink ); + CContactLink* contactLink= CContactLink::NewLC( iParentStore, KNullContactId ); + CleanupStack::Pop( contactLink ); + if ( iEventLink ) + { + delete iEventLink; + iEventLink = NULL; + } + iEventLink = contactLink; + contactLink = NULL; } // --------------------------------------------------------------------------