summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-09-22 15:56:06 +0200
committerMiklos Vajna <vmiklos@collabora.com>2021-09-22 16:47:47 +0200
commit4cf51357b75c254e7962dd86140c69474fff129f (patch)
tree8b08fd63bf79f9308972da8aeb31a2ec94b3c046 /svx/source
parent6507eddc33332d760c8807633268558c47e8cb06 (diff)
svx: improve SdrObjEditView::DisposeUndoManager()
Addresses the comment at <https://gerrit.libreoffice.org/c/core/+/122151/1/svx/source/svdraw/svdedxv.cxx#2765>, i.e. there can be the case when the undo manager is not an sw::UndoManager (or any other high level undo manager), but it's an EditUndoManager, and in that case we should not clear away the owning pointer to avoid a memory leak. Change-Id: I016cfad0563814d65c8523999c82be7747377171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122458 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'svx/source')
-rw-r--r--svx/source/svdraw/svdedxv.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index d71c48027232..3a66fff6b2e2 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -2737,7 +2737,11 @@ void SdrObjEditView::DisposeUndoManager()
{
if (pTextEditOutliner)
{
- pTextEditOutliner->SetUndoManager(nullptr);
+ if (typeid(pTextEditOutliner->GetUndoManager()) != typeid(EditUndoManager))
+ {
+ // Non-owning pointer, clear it.
+ pTextEditOutliner->SetUndoManager(nullptr);
+ }
}
mpOldTextEditUndoManager = nullptr;