diff -r 6dfc5f825351 -r 50bf9db68373 locationmanager/locationtrail/src/locationremappingao.cpp --- 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();