[Libreoffice-commits] .: 3 commits - dbaccess/source

Lionel Elie Mamane lmamane at kemper.freedesktop.org
Thu Feb 9 04:11:20 PST 2012


 dbaccess/source/core/api/RowSetCache.cxx |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

New commits:
commit 9c6ca789ef80eefff1875b7c804c343ff1668ce0
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Thu Feb 9 13:06:27 2012 +0100

    reorganise code for better readability
    
    No behaviour change intended. However, if behaviour changed, probably the *old* behaviour is buggy, not new one.

diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index 08e1a8b..6a853e6 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -1074,17 +1074,17 @@ sal_Bool ORowSetCache::moveWindow()
             {
                 aIter = m_pMatrix->begin();
 
-                nPos    = m_nStartPos;
-                bCheck  = m_pCacheSet->absolute_checked(m_nStartPos,sal_False);
-                for(; !aIter->is() && bCheck;++aIter)
+                nPos    = m_nStartPos + 1;
+                bCheck  = m_pCacheSet->absolute_checked(nPos, sal_False);
+                for(; !aIter->is() && bCheck;++aIter, ++nPos)
                 {
                     OSL_ENSURE(aIter != m_pMatrix->end(),"Invalid iterator");
-                    bCheck = m_pCacheSet->next();
                     if ( bCheck ) // resultset stands on right position
                     {
                         *aIter = new ORowSetValueVector(m_xMetaData->getColumnCount());
-                        m_pCacheSet->fillValueRow(*aIter,++nPos);
+                        m_pCacheSet->fillValueRow(*aIter, nPos);
                     }
+                    bCheck = m_pCacheSet->next();
                 }
             }
         }
commit 4ea68987e96714aec1be339c4ddd5b6110bfd008
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Thu Feb 9 13:04:34 2012 +0100

    typo in comment

diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index be51b2a..08e1a8b 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -917,7 +917,7 @@ sal_Bool ORowSetCache::moveWindow()
             const sal_Int32 nStartPosOffset = m_nStartPos - nNewStartPos; // by how much m_nStartPos moves
             m_nStartPos = nNewStartPos;
             OSL_ENSURE( static_cast<ORowSetMatrix::size_type>(nOverlapSize) <= m_pMatrix->size(), "new window end is after end of cache matrix!" );
-            // the first position in m_pMatrix whos data we don't keep;
+            // the first position in m_pMatrix whose data we don't keep;
             // content will be moved to m_pMatrix.begin()
             ORowSetMatrix::iterator aEnd (m_pMatrix->begin() + nOverlapSize);
             // the first unused position after we are done; it == m_pMatrix.end() if and only if the window is full
commit 843c8309536fec12d63dd45b6074ea5b461df322
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Thu Feb 9 13:03:24 2012 +0100

    ORowSetCache::moveWindow: yet another off-by-one error

diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index f2301f0..be51b2a 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -909,7 +909,7 @@ sal_Bool ORowSetCache::moveWindow()
             // then we fill in the rows between new and old start pos.
 
             sal_Bool bCheck;
-            bCheck = m_pCacheSet->absolute(nNewStartPos);
+            bCheck = m_pCacheSet->absolute(nNewStartPos + 1);
 
             // m_nEndPos < nNewEndPos when window not filled (e.g. there are less rows in total than window size)
             m_nEndPos = std::min(nNewEndPos, m_nEndPos);


More information about the Libreoffice-commits mailing list