lotuswordpro/inc/xfilter/xfdrawstyle.hxx | 2 ++ lotuswordpro/source/filter/xfilter/xfdrawstyle.cxx | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-)
New commits: commit a6415004630c28ac4c0a64b83d8f0fd5c77a6a31 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jan 7 14:21:12 2022 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jan 7 21:01:17 2022 +0100 ofz#43388 Direct-leak Change-Id: I5d410461d7b4e8466533fc4186ee77ec99fae089 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128123 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/lotuswordpro/inc/xfilter/xfdrawstyle.hxx b/lotuswordpro/inc/xfilter/xfdrawstyle.hxx index a426dc99e1d8..b732fbf9c439 100644 --- a/lotuswordpro/inc/xfilter/xfdrawstyle.hxx +++ b/lotuswordpro/inc/xfilter/xfdrawstyle.hxx @@ -131,6 +131,8 @@ private: double m_fArrowEndSize; bool m_bArrowStartCenter; bool m_bArrowEndCenter; + bool m_bLineStyleRegistered; + bool m_bAreaStyleRegistered; }; inline void XFDrawStyle::SetArrowStart(const OUString& start, double size) diff --git a/lotuswordpro/source/filter/xfilter/xfdrawstyle.cxx b/lotuswordpro/source/filter/xfilter/xfdrawstyle.cxx index 62abd3afbc11..f824dd5a8793 100644 --- a/lotuswordpro/source/filter/xfilter/xfdrawstyle.cxx +++ b/lotuswordpro/source/filter/xfilter/xfdrawstyle.cxx @@ -71,11 +71,18 @@ XFDrawStyle::XFDrawStyle() , m_fArrowEndSize(0.3) , m_bArrowStartCenter(false) , m_bArrowEndCenter(false) + , m_bLineStyleRegistered(false) + , m_bAreaStyleRegistered(false) {} XFDrawStyle::~XFDrawStyle() { - //don't delete m_pLineStyle, it was managed by XFStyleManager. + // normally don't delete m_pLineStyle, it was managed by XFStyleManager. + if (!m_bLineStyleRegistered) + delete m_pLineStyle; + // normally don't delete m_pAreaStyle, it was managed by XFStyleManager. + if (!m_bAreaStyleRegistered) + delete m_pAreaStyle; } void XFDrawStyle::SetLineStyle(double width, XFColor color) @@ -104,6 +111,7 @@ void XFDrawStyle::SetLineDashStyle(enumXFLineStyle style, double len1, double m_pLineStyle->SetDot2Length(len2); m_pLineStyle->SetSpace(space); XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager(); + m_bLineStyleRegistered = true; pXFStyleManager->AddStyle(std::unique_ptr<IXFStyle>(m_pLineStyle)); } @@ -143,6 +151,7 @@ void XFDrawStyle::SetAreaLineStyle(enumXFAreaLineStyle style, sal_Int32 angle m_pAreaStyle->SetLineSpace(space); m_pAreaStyle->SetLineColor(lineColor); XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager(); + m_bAreaStyleRegistered = true; pXFStyleManager->AddStyle(std::unique_ptr<IXFStyle>(m_pAreaStyle)); }