summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2024-08-22 09:05:26 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2024-08-24 20:09:57 +0200
commit20bd1ab3bfcc2d89d36b5dc284df200ece76f885 (patch)
treea80cc6ec2ba30eafcf16e4398fdf5dcda7454759
parent97649f5d39107c6354fc9b4e4eba223b0a1c1e41 (diff)
cid#1616072 Different smart pointers managing same raw pointer
Change-Id: Ia6e1a911b9d5af906fedfe01225e95396f34dd99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172349 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
-rw-r--r--sw/source/core/doc/docbm.cxx11
1 files changed, 6 insertions, 5 deletions
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index b12e12228915..d1259cde3dbc 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -1261,6 +1261,7 @@ namespace sw::mark
m_vFieldmarks.erase(ppFieldmark);
ret.reset(new LazyFieldmarkDeleter(static_cast<Fieldmark*>(pMark), m_rDoc, isMoveNodes));
+ pMark = nullptr;
}
else
{
@@ -1293,14 +1294,14 @@ namespace sw::mark
if (pDdeBookmark)
{
ret.reset(new LazyDdeBookmarkDeleter(pDdeBookmark, m_rDoc));
+ pMark = nullptr;
}
m_vAllMarks.erase(aI);
- // If we don't have a lazy deleter
- if (!ret)
- // delete after we remove from the list, because the destructor can
- // recursively call into this method.
- delete pMark;
+ // delete after we remove from the list, because the destructor can
+ // recursively call into this method.
+ delete pMark; // If we have a lazy deleter, pMark was null-ed
+
return ret;
}