2bd321f
From b12cd99fd46e81e710479e2530e80c75404f3443 Mon Sep 17 00:00:00 2001
2bd321f
From: David Tardon <dtardon@redhat.com>
2bd321f
Date: Fri, 19 Jun 2015 13:52:49 +0200
2bd321f
Subject: [PATCH] rhbz#1233420 handle inexistent cond. format
2bd321f
2bd321f
Change-Id: I3fbbd0f3b42a3be1c2a9c54eb8f35dd18f550b16
2bd321f
---
2bd321f
 sc/source/core/data/table4.cxx | 45 ++++++++++++++++++++++++++++--------------
2bd321f
 1 file changed, 30 insertions(+), 15 deletions(-)
2bd321f
2bd321f
diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
2bd321f
index a1bc8ee5..bc8e40e 100644
2bd321f
--- a/sc/source/core/data/table4.cxx
2bd321f
+++ b/sc/source/core/data/table4.cxx
2bd321f
@@ -618,9 +618,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2bd321f
                                                         itr != itrEnd; ++itr)
2bd321f
                         {
2bd321f
                             ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
2bd321f
-                            ScRangeList aRange = pCondFormat->GetRange();
2bd321f
-                            aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab));
fd7355b
-                            pCondFormat->AddRange(aRange);
2bd321f
+                            if (pCondFormat)
2bd321f
+                            {
2bd321f
+                                ScRangeList aRange = pCondFormat->GetRange();
2bd321f
+                                aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab));
fd7355b
+                                pCondFormat->AddRange(aRange);
2bd321f
+                            }
2bd321f
                         }
2bd321f
                     }
2bd321f
 
2bd321f
@@ -648,9 +651,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2bd321f
                             itr != itrEnd; ++itr)
2bd321f
                     {
2bd321f
                         ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
2bd321f
-                        ScRangeList aRange = pCondFormat->GetRange();
2bd321f
-                        aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab));
fd7355b
-                        pCondFormat->AddRange(aRange);
2bd321f
+                        if (pCondFormat)
2bd321f
+                        {
2bd321f
+                            ScRangeList aRange = pCondFormat->GetRange();
2bd321f
+                            aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab));
fd7355b
+                            pCondFormat->AddRange(aRange);
2bd321f
+                        }
2bd321f
                     }
2bd321f
                 }
2bd321f
 
2bd321f
@@ -1568,9 +1574,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2bd321f
                             itr != itrEnd; ++itr)
2bd321f
                     {
2bd321f
                         ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
2bd321f
-                        ScRangeList aRange = pCondFormat->GetRange();
2bd321f
-                        aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab));
fd7355b
-                        pCondFormat->AddRange(aRange);
2bd321f
+                        if (pCondFormat)
2bd321f
+                        {
2bd321f
+                            ScRangeList aRange = pCondFormat->GetRange();
2bd321f
+                            aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab));
fd7355b
+                            pCondFormat->AddRange(aRange);
2bd321f
+                        }
2bd321f
                     }
2bd321f
                 }
2bd321f
                 else
2bd321f
@@ -1585,9 +1594,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2bd321f
                                     itr != itrEnd; ++itr)
2bd321f
                             {
2bd321f
                                 ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
2bd321f
-                                ScRangeList aRange = pCondFormat->GetRange();
2bd321f
-                                aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab));
fd7355b
-                                pCondFormat->AddRange(aRange);
2bd321f
+                                if (pCondFormat)
2bd321f
+                                {
2bd321f
+                                    ScRangeList aRange = pCondFormat->GetRange();
2bd321f
+                                    aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab));
fd7355b
+                                    pCondFormat->AddRange(aRange);
2bd321f
+                                }
2bd321f
                             }
2bd321f
                         }
2bd321f
                     }
2bd321f
@@ -1603,9 +1615,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2bd321f
                                 itr != itrEnd; ++itr)
2bd321f
                         {
2bd321f
                             ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
2bd321f
-                            ScRangeList aRange = pCondFormat->GetRange();
2bd321f
-                            aRange.Join(ScRange(nAtCol, static_cast<SCROW>(nRow), nTab, nAtCol, static_cast<SCROW>(nRow), nTab));
fd7355b
-                            pCondFormat->AddRange(aRange);
2bd321f
+                            if (pCondFormat)
2bd321f
+                            {
2bd321f
+                                ScRangeList aRange = pCondFormat->GetRange();
2bd321f
+                                aRange.Join(ScRange(nAtCol, static_cast<SCROW>(nRow), nTab, nAtCol, static_cast<SCROW>(nRow), nTab));
fd7355b
+                                pCondFormat->AddRange(aRange);
2bd321f
+                            }
2bd321f
                         }
2bd321f
                     }
2bd321f
         }
2bd321f
-- 
2bd321f
2.4.2
2bd321f