diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2013-08-27 07:25:33 +0200 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2013-08-27 13:11:25 +0000 |
commit | 8763c77c39507284d45eb79c29977eb0174b66f1 (patch) | |
tree | 1498effe35ba10df2015deb5d59c06537f5a36b8 /toolkit | |
parent | 5e9137c9635141430b946aae2d0317c432a471ef (diff) |
Simplify a bit iterator + remove double check
Change-Id: I4a12bacc1a3774741cf4bf3eb6770e16d0cecc6e
Reviewed-on: https://gerrit.libreoffice.org/5639
Reviewed-by: Thorsten Behrens <tbehrens@suse.com>
Tested-by: Thorsten Behrens <tbehrens@suse.com>
Diffstat (limited to 'toolkit')
-rw-r--r-- | toolkit/source/controls/tree/treedatamodel.cxx | 21 |
1 files changed, 7 insertions, 14 deletions
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; |