sc/source/ui/view/gridwin.cxx |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 429a5851b84f83fd8401c99a2b8c2da34cecfe09
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Feb 14 21:25:45 2023 +0000
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Feb 16 08:36:11 2023 +0000

    Resolves: tdf#153622 crash in SvListView::SelectListEntry
    
    probably since:
    
    commit 4c8b1fa44d4f49510d3910981e649dcb08bceb36
    Date:   Fri Oct 28 13:15:00 2022 -0400
    
        tdf#151794 sc validate: honor NO_BLANK in Cell range dropdown
    
    Change-Id: Id6752126c0c8df8d813bc862e5533d05bba1b622
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146993
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 547338589298..d1f8dead3a7c 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -1432,6 +1432,14 @@ void ScGridWindow::LaunchDataSelectMenu(const SCCOL 
nCol, const SCROW nRow)
     std::vector<ScTypedStrData> aStrings; // case sensitive
     // Fill List
     rDoc.GetDataEntries(nCol, nRow, nTab, aStrings, true /* bValidation */);
+
+    // IsIgnoreBlank allows blank values. Don't add empty string unless "Allow 
Empty Cells"
+    if (pData && !pData->IsIgnoreBlank())
+    {
+        auto lambda = [](const ScTypedStrData& rStr) { return 
rStr.GetString().isEmpty(); };
+        aStrings.erase(std::remove_if(aStrings.begin(), aStrings.end(), 
lambda), aStrings.end());
+    }
+
     if (aStrings.empty())
         bEmpty = true;
 
@@ -1447,10 +1455,8 @@ void ScGridWindow::LaunchDataSelectMenu(const SCCOL 
nCol, const SCROW nRow)
 
         for (const auto& rString : aStrings)
         {
-            // IsIgnoreBlank allows blank values. Don't add empty string 
unless "Allow Empty Cells"
             const OUString& rFilterString = rString.GetString();
-            if (!rFilterString.isEmpty() || !pData || pData->IsIgnoreBlank())
-                rFilterBox.append_text(rFilterString);
+            rFilterBox.append_text(rFilterString);
         }
 
         if (bWait)

Reply via email to