lotuswordpro/inc/lwpfrib.hxx | 4 ++++ lotuswordpro/source/filter/lwpchangemgr.cxx | 2 ++ lotuswordpro/source/filter/lwpfrib.cxx | 18 +++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-)
New commits: commit b39f962e0be52f0d8380e1662f88a2f627fbfb89 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Jan 12 09:43:41 2018 +0000 ofz#5254 Bad-cast Change-Id: I318d441d841dd4c783f87ac2f3f699852e8b1039 Reviewed-on: https://gerrit.libreoffice.org/47796 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/lotuswordpro/inc/lwpfrib.hxx b/lotuswordpro/inc/lwpfrib.hxx index 4e824c0002f4..6ff3cad39a98 100644 --- a/lotuswordpro/inc/lwpfrib.hxx +++ b/lotuswordpro/inc/lwpfrib.hxx @@ -97,6 +97,7 @@ public: OUString GetEditor(); XFColor GetHighlightColor(); protected: + std::map<LwpFrib*,OUString>* m_pFribMap; LwpPara* m_pPara; LwpFrib* m_pNext; sal_uInt8 m_nFribType; @@ -119,6 +120,9 @@ public: REV_INSERT =0, REV_DELETE = 1, }; + + void Register(std::map<LwpFrib*,OUString>* pFribMap); + void Deregister(); private: static void ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo); protected: diff --git a/lotuswordpro/source/filter/lwpchangemgr.cxx b/lotuswordpro/source/filter/lwpchangemgr.cxx index e08ee979869d..c04241aaccb4 100644 --- a/lotuswordpro/source/filter/lwpchangemgr.cxx +++ b/lotuswordpro/source/filter/lwpchangemgr.cxx @@ -89,6 +89,7 @@ LwpChangeMgr::LwpChangeMgr() m_pFribMap = &m_DocFribMap; m_ChangeList.clear(); } + LwpChangeMgr::~LwpChangeMgr() { m_pFribMap=nullptr; @@ -102,6 +103,7 @@ void LwpChangeMgr::AddChangeFrib(LwpFrib* pFrib) m_nCounter++; OUString sID = "ct"+ OUString::number(m_nCounter); m_pFribMap->insert(std::pair<LwpFrib*,OUString>(pFrib,sID)); + pFrib->Register(m_pFribMap); } OUString LwpChangeMgr::GetChangeID(LwpFrib* pFrib) diff --git a/lotuswordpro/source/filter/lwpfrib.cxx b/lotuswordpro/source/filter/lwpfrib.cxx index f9b3ad759d3c..919b257be043 100644 --- a/lotuswordpro/source/filter/lwpfrib.cxx +++ b/lotuswordpro/source/filter/lwpfrib.cxx @@ -87,7 +87,8 @@ LwpFrib::LwpFrib(LwpPara* pPara) - : m_pPara(pPara) + : m_pFribMap(nullptr) + , m_pPara(pPara) , m_pNext(nullptr) , m_nFribType(0) , m_pModifiers(nullptr) @@ -100,6 +101,7 @@ LwpFrib::LwpFrib(LwpPara* pPara) LwpFrib::~LwpFrib() { + Deregister(); } LwpFrib* LwpFrib::CreateFrib(LwpPara* pPara, LwpObjectStream* pObjStrm, sal_uInt8 fribtag,sal_uInt8 editID) @@ -447,4 +449,18 @@ XFColor LwpFrib::GetHighlightColor() return pGlobal->GetHighlightColor(m_nEditor); } +void LwpFrib::Register(std::map<LwpFrib*,OUString>* pFribMap) +{ + m_pFribMap = pFribMap; +} + +void LwpFrib::Deregister() +{ + if (m_pFribMap) + { + m_pFribMap->erase(this); + m_pFribMap = nullptr; + } +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits