[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - connectivity/source

Lionel Elie Mamane lionel at mamane.lu
Tue May 21 10:42:22 PDT 2013


 connectivity/source/drivers/flat/ETable.cxx |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

New commits:
commit fd3e9a136da6f119e6f722ac409ff32bd52c8ea0
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Fri May 17 10:54:40 2013 +0200

    fdo#47951 flat text table: update m_nRowPos when moving by bookmark
    
    Change-Id: Iac154020b4b6309f92b1f68fa5bf79611dfcc91b
    Reviewed-on: https://gerrit.libreoffice.org/3961
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
index 9fe48f0..8ae7935 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -869,15 +869,29 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int
             break;
         case IResultSetHelper::BOOKMARK:
             {
+                m_nRowPos = 0;
                 TRowPositionsInFile::const_iterator aFind = m_aFilePosToEndLinePos.find(nOffset);
                 m_bNeedToReadLine = aFind != m_aFilePosToEndLinePos.end();
                 if ( m_bNeedToReadLine )
                 {
                     m_nFilePos  = aFind->first;
                     nCurPos = aFind->second;
+                    for(::std::map<sal_Int32, TRowPositionsInFile::iterator>::const_iterator p = m_aRowPosToFilePos.begin();
+                        p != m_aRowPosToFilePos.end();
+                        ++p)
+                    {
+                        assert(p->second->first <= nOffset);
+                        if(p->second->first == nOffset)
+                        {
+                            m_nRowPos = p->first;
+                            break;
+                        }
+                    }
+                    assert(m_nRowPos > 0);
                 }
                 else
                 {
+                    assert(false);
                     m_nFilePos = nOffset;
                     m_pFileStream->Seek(nOffset);
                     if (m_pFileStream->IsEof() || !readLine(nCurPos) )


More information about the Libreoffice-commits mailing list