diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2013-11-30 11:58:39 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-12-10 12:24:52 +0000 |
commit | a9ba6f0c54f325cadc14897471591251736157d9 (patch) | |
tree | f94e74b19c645c23d72ea2fb3bb6ad969f9697c2 | |
parent | a231567481525384cbce9d49c2e3e425ecdd40ce (diff) |
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.
Conflicts:
connectivity/source/drivers/flat/ETable.cxx
Change-Id: I629b71936f82a468febe0360909264dd80304437
Reviewed-on: https://gerrit.libreoffice.org/6866
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | connectivity/source/drivers/flat/ETable.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index f777e636dee8..d1cab112c5a2 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -757,9 +757,10 @@ void OFlatTable::refreshHeader() // ----------------------------------------------------------------------------- namespace { - template< typename Tp, typename Te> bool pairFirstLess(const Tp &p, const Te &e) + template< typename Tp, typename Te> bool RangeBefore(const Tp &p, const Te &e) { - return p.first < e; + assert(p.first <= p.second); + return p.second <= e; } } // ----------------------------------------------------------------------------- @@ -898,7 +899,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 |