diff -r 030c4fbc13d7 -r b54b58ee9d58 authorisation/userpromptservice/database/test/tupsdb/source/tupsdbbase.cpp --- a/authorisation/userpromptservice/database/test/tupsdb/source/tupsdbbase.cpp Wed Apr 14 17:48:59 2010 +0300 +++ b/authorisation/userpromptservice/database/test/tupsdb/source/tupsdbbase.cpp Tue Apr 27 18:28:15 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of the License "Eclipse Public License v1.0" @@ -348,7 +348,7 @@ } -RPointerArray CUpsDbBaseStep::GetDecisionsL(CDecisionDbW &aUpsDb, CDecisionFilter &aFilter, TBool aCancel) +void CUpsDbBaseStep::GetDecisionsL(CDecisionDbW &aUpsDb, CDecisionFilter &aFilter, TBool aCancel, RPointerArray& aRecordList) /** Get a set of decision records from the database. Uses multiple records lookup method (RDbView). Prints the consumed time to perform this operation. @@ -363,7 +363,6 @@ dbView->EvaluateView(iWaiter->iStatus); TInt num = 0; - RPointerArray recordList; if(aCancel) { dbView->Cancel(); @@ -371,18 +370,16 @@ } else { - iWaiter->WaitActiveL(KErrNone); - CleanupClosePushL(recordList); + iWaiter->WaitActiveL(KErrNone); CDecisionRecord *record = NULL; while((record = dbView->NextDecisionL()) != NULL) { CleanupStack::PushL(record); num++; - recordList.AppendL(record); + aRecordList.AppendL(record); CleanupStack::Pop(record); } - CleanupStack::Pop(&recordList); } //Timer is stopped @@ -391,8 +388,6 @@ INFO_PRINTF3(_L("%d records retrieved in %Ld microseconds."), num, elapsedTime); CleanupStack::PopAndDestroy(dbView); - - return recordList; } @@ -555,7 +550,7 @@ CDecisionRecord *record = NULL; CDecisionFilter *filter = NULL; - RPointerArray recordList; + RPointerArray recordList; TBuf8 bufFp; TBuf8 bufCe; TBuf bufDes; @@ -572,16 +567,16 @@ InsertRecordL(aUpsDb,*record); filter = CreateFilterLC(flag,clientId,evaluatorId,serviceId,serverId,bufFp,bufCe,policyVersion,recordId,bufDes,result,evaluatorInfo,EEqual); - recordList = GetDecisionsL(aUpsDb,*filter,EFalse); + CleanupResetAndDestroyPushL(recordList); + GetDecisionsL(aUpsDb, *filter, EFalse, recordList); if(recordList.Count() != 1) { SetTestStepResult(EFail); + CleanupStack::PopAndDestroy(3,record); break; } - recordList.Close(); - CleanupStack::PopAndDestroy(2,record); - } - + CleanupStack::PopAndDestroy(3,record); + } }