--- a/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp Thu Aug 19 10:20:18 2010 +0300
+++ b/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp Tue Aug 31 15:37:04 2010 +0300
@@ -364,16 +364,16 @@
{
case EOpStateQuery:
{
- iView.FirstL();
+
// check if view is empty, return KErrNotFound
- if( iView.IsEmptyL() || !iView.AtRow() )
+ if( iView.IsEmptyL() || !iView.AtRow() || !iView.FirstL() )
{
CompleteClientRequest( KErrNotFound );
break;
}
// Start iterating through all the triggers in view
iOperationState = EOpStateIterating;
- iView.FirstL();
+
}
// Omitting break is intentional
case EOpStateIterating:
@@ -763,14 +763,14 @@
case EOpStateQuery:
{
// check if view is empty, return KErrNotFound
- if( iView.IsEmptyL() )
+ if( iView.IsEmptyL() || !iView.FirstL())
{
CompleteClientRequest( KErrNotFound );
break;
}
// Start iterating through all the triggers in view
iOperationState = EOpStateIterating;
- iView.FirstL();
+
}
// Omitting break is intentional
case EOpStateIterating:
@@ -835,8 +835,10 @@
}
CleanupStack::PopAndDestroy(entry);
}
- iView.NextL();
- }
+ TBool res =iView.NextL();
+ if (!res)
+ break;
+ }
if( count >= KStepCount )
{
@@ -869,7 +871,7 @@
case EOpStateQuery:
{
// check if view is empty, return KErrNotFound
- if( iView.IsEmptyL() )
+ if( iView.IsEmptyL() || !iView.FirstL())
{
CompleteClientRequest( KErrNotFound );
break;
@@ -877,7 +879,8 @@
// Start iterating through all the triggers in view
iOperationState = EOpStateIterating;
- iView.FirstL();
+
+
}
// Omitting break is intentional
case EOpStateIterating:
@@ -924,7 +927,10 @@
}
CleanupStack::PopAndDestroy( entry );
}
- iView.NextL();
+
+ TBool res = iView.NextL();
+ if(!res)
+ break;
}
}
@@ -982,7 +988,8 @@
}
}
- iView.NextL();
+ if(!iView.NextL())
+ break;
}
if( count >= KStepCount )
@@ -1262,7 +1269,7 @@
}
}
areaBase->InternalizeL(readStream);
- areaArray.Append(areaBase);
+ areaArray.AppendL(areaBase);
CleanupStack::Pop(1); //areaBase
}
@@ -1321,7 +1328,11 @@
PrepareViewForTriggersL( aTriggerIds, iView );
// rest of list triggers operation is in the method HandleGetTriggersEventL.
- iView.FirstL();
+ if(!iView.FirstL())
+ {
+ CompleteClientRequest( KErrNotFound );
+ return;
+ }
SelfComplete();
}
@@ -1395,7 +1406,12 @@
PrepareViewForListingL( iView );
// rest of list triggers operation is in the method HandleListTriggersEventL.
- iView.FirstL();
+
+ if(!iView.FirstL())
+ {
+ CompleteClientRequest( KErrNotFound );
+ return;
+ }
iFilterBase = LbtContainerUtilities::GetContainerFilterFromListOptionsLC(iFilter);
CleanupStack::Pop(1); // iFilterBase
@@ -1507,9 +1523,13 @@
sql.AppendNum( aTriggerId );
// Execute the query to delete the entry
- iDbOperation->ExecuteSyncQuery( view, sql );
- view.Close();
- }
+ TInt err =iDbOperation->ExecuteSyncQuery( view, sql );
+ if( err != KErrNone )
+ {
+ LOG("err");
+ }
+ view.Close();
+ }
//---------------------------------------------------------------------------
// CLbtDbTriggersManager::AddGeoCellIntoDbL
@@ -1759,10 +1779,15 @@
iIdArray.Reset();
RDbView view;
+ CleanupClosePushL( view );
PrepareViewForTriggersL( aTriggerIds, view );
+ if(!view.FirstL())
+ {
+ CompleteClientRequest( KErrNotFound );
+ return;
+ }
+
- CleanupClosePushL( view );
- view.FirstL();
while(view.AtRow())
{
view.GetL();
@@ -1800,7 +1825,7 @@
TLbtTriggerModifiedInfo info;
info.iTriggerId = triggerId;
info.iAreaType = static_cast<CLbtGeoAreaBase::TGeoAreaType>(view.ColInt8(ELbtDbTriggerAreaType));;
- iIdArray.Append(info);
+ iIdArray.AppendL(info);
if( currentValidity == TLbtTriggerDynamicInfo::EInvalid &&
aValidity == TLbtTriggerDynamicInfo::EValid)
@@ -1815,7 +1840,8 @@
}
}
}
- view.NextL();
+ if(!view.NextL())
+ break;
}
CleanupStack::PopAndDestroy(); // view
User::RequestComplete( status, KErrNone );
@@ -1853,7 +1879,12 @@
TBool found = EFalse;
CleanupClosePushL( view );
- view.FirstL();
+
+ if(!view.FirstL())
+ {
+ CompleteClientRequest( KErrNotFound );
+ return;
+ }
while(view.AtRow())
{
view.GetL();
@@ -1870,8 +1901,10 @@
view.PutL();
}
}
- view.NextL();
- }
+ if(!view.NextL())
+ break;
+
+ }
CleanupStack::PopAndDestroy(); //view
TInt error = KErrNone;
@@ -2036,10 +2069,12 @@
User::Leave(error);
}
CleanupClosePushL(hybridView);
- hybridView.FirstL();
+ if(hybridView.FirstL())
+ {
hybridView.GetL();
hybridView.DeleteL();
hybridView.Close();
+ }
CleanupStack::PopAndDestroy(1); // hybridView
break;
}
@@ -2050,7 +2085,7 @@
MLbtTriggerStore::TLbtTriggerModifiedInfo info;
info.iTriggerId = aTriggerId;
info.iAreaType = areaType;
- iIdArray.Append(info);
+ iIdArray.AppendL(info);
}
iView.DeleteL();
@@ -2409,7 +2444,11 @@
info.iStartupProcess = KNullUid;
}
- iIdArray.Append(info);
+ TInt error = iIdArray.Append(info);
+ if( error != KErrNone )
+ {
+ LOG1("Failed to appenf info to the array:%d",error);
+ }
}
@@ -2421,7 +2460,12 @@
{
for( TInt i = 0;i<iIdArray.Count();i++ )
{
- aArray.Append(iIdArray[i]);
+ TInt error = aArray.Append(iIdArray[i]);
+ if( error != KErrNone )
+ {
+ LOG1("Failed to append modified triggers:%d",error);
+ return;
+ }
}
iIdArray.Reset();
}
@@ -2580,7 +2624,8 @@
}
}
- iView.NextL();
+ if(!iView.NextL())
+ break;
}
if( count >= KStepCount )