--- a/authorisation/userpromptservice/database/test/tupsdb/source/tupsdbbase.cpp Mon May 03 14:11:52 2010 +0300
+++ b/authorisation/userpromptservice/database/test/tupsdb/source/tupsdbbase.cpp Fri May 14 17:39:00 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<CDecisionRecord> CUpsDbBaseStep::GetDecisionsL(CDecisionDbW &aUpsDb, CDecisionFilter &aFilter, TBool aCancel)
+void CUpsDbBaseStep::GetDecisionsL(CDecisionDbW &aUpsDb, CDecisionFilter &aFilter, TBool aCancel, RPointerArray<CDecisionRecord>& 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<CDecisionRecord> 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<CDecisionRecord> recordList;
+ RPointerArray<CDecisionRecord> recordList;
TBuf8<KUpsMaxFingerprintLength> bufFp;
TBuf8<KUpsMaxClientEntityLength> bufCe;
TBuf<KUpsDescriptionLength> 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);
+ }
}