[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-6-4+backports' - sc/source
Vasily Melenchuk (via logerrit)
logerrit at kemper.freedesktop.org
Fri Oct 1 18:16:38 UTC 2021
sc/source/ui/view/gridwin.cxx | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
New commits:
commit 4529a8ce16ef791a4e572898149e831b2b537157
Author: Vasily Melenchuk <vasily.melenchuk at cib.de>
AuthorDate: Thu Sep 30 14:10:12 2021 +0200
Commit: Thorsten Behrens <thorsten.behrens at allotropia.de>
CommitDate: Fri Oct 1 20:16:04 2021 +0200
sc: colorfilter dangling pointer fixed
Upper call to aParam.RemoveAllEntriesByField can invalidate
pEntry, making further calls to pEntry->SetQueryBy* illegal.
Anyway at this branch we are disabling color filter, so this
is not required.
Change-Id: Ia595649975b659d28056ba3f3658c306e63088f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122822
Tested-by: Jenkins
Reviewed-by: Vasily Melenchuk <vasily.melenchuk at cib.de>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122929
Tested-by: Thorsten Behrens <thorsten.behrens at allotropia.de>
Reviewed-by: Thorsten Behrens <thorsten.behrens at allotropia.de>
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 37f2ee4e9f72..99e5ca53eec1 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -934,6 +934,7 @@ void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode)
if (nSelected == nActive)
{
aParam.RemoveAllEntriesByField(rPos.Col());
+ pEntry = nullptr; // invalidated by RemoveAllEntriesByField call
// tdf#46184 reset filter options to default values
aParam.eSearchType = utl::SearchParam::SearchType::Normal;
@@ -941,16 +942,18 @@ void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode)
aParam.bDuplicate = true;
aParam.bInplace = true;
}
-
- // Get selected color from set
- std::set<Color>::iterator it = aColors.begin();
- std::advance(it, nSelected - 1);
- Color selectedColor = *it;
-
- if (eMode == AutoFilterMode::TextColor)
- pEntry->SetQueryByTextColor(selectedColor);
else
- pEntry->SetQueryByBackgroundColor(selectedColor);
+ {
+ // Get selected color from set
+ std::set<Color>::iterator it = aColors.begin();
+ std::advance(it, nSelected - 1);
+ Color selectedColor = *it;
+
+ if (eMode == AutoFilterMode::TextColor)
+ pEntry->SetQueryByTextColor(selectedColor);
+ else
+ pEntry->SetQueryByBackgroundColor(selectedColor);
+ }
}
break;
More information about the Libreoffice-commits
mailing list