summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-11-30 11:58:39 +0100
committerStephan Bergmann <sbergman@redhat.com>2013-12-10 12:24:52 +0000
commita9ba6f0c54f325cadc14897471591251736157d9 (patch)
treef94e74b19c645c23d72ea2fb3bb6ad969f9697c2
parenta231567481525384cbce9d49c2e3e425ecdd40ce (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.cxx7
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