[Libreoffice-commits] .: Branch 'libreoffice-3-6-1' - sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Aug 27 13:47:02 PDT 2012


 sc/source/core/data/dpcache.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 7ca2d95c8ee30c450483433d5f380ebbf80691d5
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Wed Aug 22 14:25:01 2012 -0400

    fdo#53640: Correctly cache source data coming from database backend.
    
    It was due to a simple misplacement of nRow = 0.  Each record was
    labeled row 0.  No wonder it screws up the result badly.
    
    Change-Id: Ia94f42a62f98a9bd7c9d34df3606351bb487931b
    Signed-off-by: Michael Meeks <michael.meeks at suse.com>
    (cherry picked from commit a28d9cad672739cbf8dc6cf1f9db7d0f8becfee1)
    
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 3299ba0..a11db55 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -461,24 +461,27 @@ bool ScDPCache::InitFromDataBase (const Reference<sdbc::XRowSet>& xRowSet, const
         Reference<sdbc::XRow> xRow(xRowSet, UNO_QUERY_THROW);
 
         std::vector<Bucket> aBuckets;
+        ScDPItemData aData;
         for (sal_Int32 nCol = 0; nCol < mnColumnCount; ++nCol)
         {
             xRowSet->first();
-            ScDPItemData aData;
             aBuckets.clear();
             Field& rField = maFields[nCol];
+            SCROW nRow = 0;
             do
             {
-                SCROW nRow = 0;
                 short nFormatType = NUMBERFORMAT_UNDEFINED;
+                aData.SetEmpty();
                 getItemValue(*this, aData, xRow, aColTypes[nCol], nCol+1, rNullDate, nFormatType);
-                aBuckets.push_back(Bucket(aData, 0, nRow++));
+                aBuckets.push_back(Bucket(aData, 0, nRow));
                 if (!aData.IsEmpty())
                 {
                     maEmptyRows.insert_back(nRow, nRow+1, false);
                     SvNumberFormatter* pFormatter = mpDoc->GetFormatTable();
                     rField.mnNumFormat = pFormatter ? pFormatter->GetStandardFormat(nFormatType) : 0;
                 }
+
+                ++nRow;
             }
             while (xRowSet->next());
 


More information about the Libreoffice-commits mailing list