[Libreoffice-commits] core.git: Branch 'libreoffice-3-6' - connectivity/source

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


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

New commits:
commit 8f3147df3c309127382f800f9a2b19f355bd9d15
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/3962
    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 b7f61ed..fc1124e 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -873,15 +873,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