--- a/locationmanager/locationtrail/src/locationremappingao.cpp Fri Mar 19 09:38:01 2010 +0200
+++ b/locationmanager/locationtrail/src/locationremappingao.cpp Fri Apr 16 15:23:55 2010 +0300
@@ -149,8 +149,7 @@
// clear all "old" location id's from remap items
if( removeLocations.Count() < 0 )
{
- index = iRemapItems.Count();
- for( TInt i = 0; i < index; i++ )
+ for( TInt i = iRemapItems.Count() - 1; i >=0; i-- )
{
TInt err = removeLocations.Find( iRemapItems[i].iLocationId );
if ( err != KErrNotFound )
@@ -273,33 +272,38 @@
for (TInt i = 0; i < count; i++)
{
CMdEObject* location = iMdEClient->OpenObjectL(iObjectIds[i], *iObjLocationDef);
- CleanupStack::PushL( location );
+
+ if(location)
+ {
+ CleanupStack::PushL( location );
- if (location->PropertyCount(*iPropLatDef) == 0)
- {
- location->AddReal64PropertyL(*iPropLatDef, iLocationData.iPosition.Latitude());
- LOG( "CLocationRemappingAO::RemapObjects - wrote latitude" );
- }
- if (location->PropertyCount(*iPropLongDef) == 0)
- {
- location->AddReal64PropertyL(*iPropLongDef, iLocationData.iPosition.Longitude());
- LOG( "CLocationRemappingAO::RemapObjects - wrote longitude" );
- }
- if (location->PropertyCount(*iPropAltDef) == 0)
- {
- location->AddReal64PropertyL(*iPropAltDef, iLocationData.iPosition.Altitude());
- LOG( "CLocationRemappingAO::RemapObjects - wrote altitude" );
- }
- CMdEProperty* modProp = NULL;
- location->Property( *iPropModifiedDef, modProp, 0 );
- if ( modProp )
- {
- TTime timestamp( 0 );
- timestamp.UniversalTime();
- modProp->SetTimeValueL( timestamp );
- }
- iObjects.AppendL(location);
- CleanupStack::Pop( location );
+ if (location->PropertyCount(*iPropLatDef) == 0)
+ {
+ location->AddReal64PropertyL(*iPropLatDef, iLocationData.iPosition.Latitude());
+ LOG( "CLocationRemappingAO::RemapObjects - wrote latitude" );
+ }
+ if (location->PropertyCount(*iPropLongDef) == 0)
+ {
+ location->AddReal64PropertyL(*iPropLongDef, iLocationData.iPosition.Longitude());
+ LOG( "CLocationRemappingAO::RemapObjects - wrote longitude" );
+ }
+ if (location->PropertyCount(*iPropAltDef) == 0)
+ {
+ location->AddReal64PropertyL(*iPropAltDef, iLocationData.iPosition.Altitude());
+ LOG( "CLocationRemappingAO::RemapObjects - wrote altitude" );
+ }
+ CMdEProperty* modProp = NULL;
+ location->Property( *iPropModifiedDef, modProp, 0 );
+ if ( modProp )
+ {
+ TTime timestamp( 0 );
+ timestamp.UniversalTime();
+ modProp->SetTimeValueL( timestamp );
+ }
+ iObjects.AppendL(location);
+ CleanupStack::Pop( location );
+
+ }
}
count = iRemapItems.Count();
LOG1("CLocationRemappingAO::RemapObjectsL - updating relations, count:%d", count);
@@ -309,12 +313,16 @@
CMdERelation* relation = NULL;
relation = iMdEClient->GetRelationL( iRemapItems[i].iRelationId );
- TTime timestamp( 0 );
- timestamp.UniversalTime();
- relation->SetLastModifiedDate( timestamp );
+ if(relation)
+ {
+ TTime timestamp( 0 );
+ timestamp.UniversalTime();
+ relation->SetLastModifiedDate( timestamp );
- iMdEClient->UpdateRelationL( *relation );
+ iMdEClient->UpdateRelationL( *relation );
+ }
}
+
LOG("CLocationRemappingAO::RemapObjectsL - relations updated");
iObjectIds.Reset();