[Problem] Reverse_iter is dereferenced before we check if it's valid.
[Solution] Check if it's valid before we use it.
Change-Id: I96bdd0c30d35faf8c9a31507925218ed4b372a23
displacedActor = temp;
iter->second.RemoveConstraints();
displacedActor = temp;
iter->second.RemoveConstraints();
- mActiveLayout->ApplyConstraints(iter->second, iter->first, durationSeconds, mScrollPositionObject, Self() );
+ mActiveLayout->ApplyConstraints( iter->second, iter->first, durationSeconds, mScrollPositionObject, Self() );
- ItemId lastId = mItemPool.rbegin()->first;
- Item lastItem( lastId + 1, displacedActor );
- mItemPool.insert( lastItem );
+ ItemPool::reverse_iterator lastIter = mItemPool.rbegin();
+ if ( lastIter != mItemPool.rend() )
+ {
+ ItemId lastId = lastIter->first;
+ Item lastItem( lastId + 1, displacedActor );
+ mItemPool.insert( lastItem );
- lastItem.second.RemoveConstraints();
- mActiveLayout->ApplyConstraints(lastItem.second, lastItem.first, durationSeconds, mScrollPositionObject, Self() );
+ lastItem.second.RemoveConstraints();
+ mActiveLayout->ApplyConstraints( lastItem.second, lastItem.first, durationSeconds, mScrollPositionObject, Self() );
+ }
}
CalculateDomainSize(Self().GetCurrentSize());
}
CalculateDomainSize(Self().GetCurrentSize());