connectivity/source/drivers/file/FResultSet.cxx | 6 +++++- connectivity/source/drivers/flat/ETable.cxx | 17 ++++------------- 2 files changed, 9 insertions(+), 14 deletions(-)
New commits: commit 829621680b028909d58b0480a78a6aee7154f31a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sat Nov 30 11:58:39 2013 +0100 flat text DB: fix move by bookmark To test whether the range [a,b( is *before* e, compare e to b, not to a. This makes a difference when a==b, which happens for row 0 (header) when there is no header. Change-Id: I629b71936f82a468febe0360909264dd80304437 diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index f30f467..acf9812 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -761,22 +761,13 @@ void OFlatTable::refreshHeader() // ----------------------------------------------------------------------------- namespace { - template< typename Tp, typename Te> struct PairFirstLess + template< typename Tp, typename Te> struct RangeBefore { bool operator() (const Tp &p, const Te &e) { - return p.first < e; + assert(p.first <= p.second); + return p.second <= e; } -#ifdef DBG_UTIL - bool operator() (const Te &e, const Tp &p) - { - return e < p.first; - } - bool operator() (const Tp &p1, const Tp &p2) - { - return p1.first < p2.first; - } -#endif }; } // ----------------------------------------------------------------------------- @@ -915,7 +906,7 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int vector< TRowPositionInFile >::const_iterator aFind = lower_bound(m_aRowPosToFilePos.begin(), m_aRowPosToFilePos.end(), nOffset, - PairFirstLess< TRowPositionInFile, sal_Int32 >()); + RangeBefore< TRowPositionInFile, sal_Int32 >()); if(aFind == m_aRowPosToFilePos.end() || aFind->first != nOffset) //invalid bookmark commit be6bed2ca4083039bfcbd62f9603efa3a0bdd3dc Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Sat Nov 30 11:54:20 2013 +0100 fdo#72148 if expecting table at begin, explicitly set it so Change-Id: Ic876603e5860b987280b73726fd79a071a9c833c diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx index 58aa810..63c77c7 100644 --- a/connectivity/source/drivers/file/FResultSet.cxx +++ b/connectivity/source/drivers/file/FResultSet.cxx @@ -1098,7 +1098,11 @@ sal_Bool OResultSet::Move(IResultSetHelper::Movement eCursorPosition, sal_Int32 else // Index must be further constructed { // set first on the last known row - if (!m_pFileSet->get().empty()) + if (m_pFileSet->get().empty()) + { + m_pTable->seekRow(IResultSetHelper::ABSOLUTE, 0, m_nFilePos); + } + else { m_aFileSetIter = m_pFileSet->get().end()-1; m_pTable->seekRow(IResultSetHelper::BOOKMARK, *m_aFileSetIter, m_nFilePos); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits