summaryrefslogtreecommitdiff
path: root/lotuswordpro
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-01-12 09:43:41 +0000
committerAndras Timar <andras.timar@collabora.com>2018-01-16 16:13:27 +0100
commitc78cd9e8edb93ea0ce66106f100400959f9142f0 (patch)
tree2622fc7db0b564ba8acbe4c91e3aa9462a73cd62 /lotuswordpro
parent932508baccd9b97c761980d36ae45e1ae0d85157 (diff)
ofz#5254 Bad-cast
Change-Id: I318d441d841dd4c783f87ac2f3f699852e8b1039 Reviewed-on: https://gerrit.libreoffice.org/47805 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit f8a1dd7ae35ea0307a9282378a9300897df6fb42) Signed-off-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'lotuswordpro')
-rw-r--r--lotuswordpro/source/filter/lwpchangemgr.cxx2
-rw-r--r--lotuswordpro/source/filter/lwpfrib.cxx18
-rw-r--r--lotuswordpro/source/filter/lwpfrib.hxx4
3 files changed, 23 insertions, 1 deletions
diff --git a/lotuswordpro/source/filter/lwpchangemgr.cxx b/lotuswordpro/source/filter/lwpchangemgr.cxx
index ee1906865eb0..3816d8f52339 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 3b41993f735f..6cb34aa2167a 100644
--- a/lotuswordpro/source/filter/lwpfrib.cxx
+++ b/lotuswordpro/source/filter/lwpfrib.cxx
@@ -86,7 +86,8 @@
LwpFrib::LwpFrib(LwpPara* pPara)
- : m_pPara(pPara)
+ : m_pFribMap(nullptr)
+ , m_pPara(pPara)
, m_pNext(nullptr)
, m_nFribType(0)
, m_pModifiers(nullptr)
@@ -99,6 +100,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: */
diff --git a/lotuswordpro/source/filter/lwpfrib.hxx b/lotuswordpro/source/filter/lwpfrib.hxx
index 70258c8e86be..a51be22f50ba 100644
--- a/lotuswordpro/source/filter/lwpfrib.hxx
+++ b/lotuswordpro/source/filter/lwpfrib.hxx
@@ -96,6 +96,7 @@ public:
OUString GetEditor();
XFColor GetHighlightColor();
protected:
+ std::map<LwpFrib*,OUString>* m_pFribMap;
LwpPara* m_pPara;
LwpFrib* m_pNext;
sal_uInt8 m_nFribType;
@@ -118,6 +119,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: