diff -r 02ba3f1733c6 -r 2b4ea9893b66 locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp --- 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(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= KStepCount )