Author: damjan Date: Mon Jul 10 17:13:49 2017 New Revision: 1801502 URL: http://svn.apache.org/viewvc?rev=1801502&view=rev Log: If called on an empty collection, don't let OEnumerationByIndex.nextElement() call XIndexAccess.getByIndex() with an invalid index, just like OEnumerationByName.nextElement() doesn't.
Patch by: me Modified: openoffice/trunk/main/comphelper/source/container/enumhelper.cxx Modified: openoffice/trunk/main/comphelper/source/container/enumhelper.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/comphelper/source/container/enumhelper.cxx?rev=1801502&r1=1801501&r2=1801502&view=diff ============================================================================== --- openoffice/trunk/main/comphelper/source/container/enumhelper.cxx (original) +++ openoffice/trunk/main/comphelper/source/container/enumhelper.cxx Mon Jul 10 17:13:49 2017 @@ -188,15 +188,14 @@ staruno::Any SAL_CALL OEnumerationByInde ::osl::ResettableMutexGuard aLock(m_aLock); staruno::Any aRes; - if (m_xAccess.is()) - { - aRes = m_xAccess->getByIndex(m_nPos++); - if (m_nPos >= m_xAccess->getCount()) - { - impl_stopDisposeListening(); - m_xAccess.clear(); - } - } + if (m_xAccess.is() && m_nPos < m_xAccess->getCount()) + aRes = m_xAccess->getByIndex(m_nPos++); + + if (m_xAccess.is() && m_nPos >= m_xAccess->getCount()) + { + impl_stopDisposeListening(); + m_xAccess.clear(); + } if (!aRes.hasValue()) // es gibt kein Element mehr throw starcontainer::NoSuchElementException();