From 8763c77c39507284d45eb79c29977eb0174b66f1 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Tue, 27 Aug 2013 07:25:33 +0200 Subject: Simplify a bit iterator + remove double check Change-Id: I4a12bacc1a3774741cf4bf3eb6770e16d0cecc6e Reviewed-on: https://gerrit.libreoffice.org/5639 Reviewed-by: Thorsten Behrens Tested-by: Thorsten Behrens --- toolkit/source/controls/tree/treedatamodel.cxx | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'toolkit/source') diff --git a/toolkit/source/controls/tree/treedatamodel.cxx b/toolkit/source/controls/tree/treedatamodel.cxx index 891525d9d913..292d68555dcf 100644 --- a/toolkit/source/controls/tree/treedatamodel.cxx +++ b/toolkit/source/controls/tree/treedatamodel.cxx @@ -436,23 +436,16 @@ void SAL_CALL MutableTreeNode::removeChildByIndex( sal_Int32 nChildIndex ) throw { ::osl::Guard< ::osl::Mutex > aGuard( maMutex ); - MutableTreeNodeRef xImpl; + if( (nChildIndex < 0) || (nChildIndex >= (sal_Int32)maChildren.size()) ) + throw IndexOutOfBoundsException(); - if( (nChildIndex >= 0) && (nChildIndex < (sal_Int32)maChildren.size()) ) - { - TreeNodeVector::iterator aIter( maChildren.begin() ); - while( nChildIndex-- && (aIter != maChildren.end()) ) - ++aIter; + MutableTreeNodeRef xImpl; - if( aIter != maChildren.end() ) - { - xImpl = (*aIter); - maChildren.erase( aIter ); - } - } + TreeNodeVector::iterator aIter( maChildren.begin() ); + std::advance(aIter, nChildIndex); - if( !xImpl.is() ) - throw IndexOutOfBoundsException(); + xImpl = (*aIter); + maChildren.erase( aIter ); xImpl->setParent(0); xImpl->mbIsInserted = false; -- cgit