summaryrefslogtreecommitdiff
path: root/vcl/source/window/menuitemlist.cxx
diff options
context:
space:
mode:
authorAron Budea <aron.budea@collabora.com>2017-04-03 02:21:28 +0200
committerMichael Meeks <michael.meeks@collabora.com>2017-04-04 15:58:29 +0000
commit2aa43937ec9c9e22d9b28f4275a5bfb3ffbd82c0 (patch)
treecd7546ad50324b81a2e09fc878f7ad7ec1c820e8 /vcl/source/window/menuitemlist.cxx
parentc1351a7b1363dac4349f37ac8876fdf950e62b97 (diff)
tdf#104686: do not crash if Menu has been somehow disposed
The rare crashes in MenuFloatingWindow::ImplGetStartY() and MenuFloatingWindow::ImplScroll(bool) likely happen because of a disposed Menu. Let's guard against invalid accesses. Change-Id: Ie31240abbc48c06edd40d0a95f319725cdb3db16 Reviewed-on: https://gerrit.libreoffice.org/36026 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'vcl/source/window/menuitemlist.cxx')
-rw-r--r--vcl/source/window/menuitemlist.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/vcl/source/window/menuitemlist.cxx b/vcl/source/window/menuitemlist.cxx
index 7316ed98355f..67cdb6af2cce 100644
--- a/vcl/source/window/menuitemlist.cxx
+++ b/vcl/source/window/menuitemlist.cxx
@@ -135,6 +135,13 @@ void MenuItemList::Remove( size_t nPos )
}
}
+void MenuItemList::Clear()
+{
+ for (MenuItemData* i : maItemList)
+ delete i;
+ maItemList.resize(0);
+}
+
MenuItemData* MenuItemList::GetData( sal_uInt16 nSVId, size_t& rPos ) const
{
for( size_t i = 0, n = maItemList.size(); i < n; ++i )