Kaydet (Commit) b39f962e authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#5254 Bad-cast

Change-Id: I318d441d841dd4c783f87ac2f3f699852e8b1039
Reviewed-on: https://gerrit.libreoffice.org/47796Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 2a80ce62
...@@ -97,6 +97,7 @@ public: ...@@ -97,6 +97,7 @@ public:
OUString GetEditor(); OUString GetEditor();
XFColor GetHighlightColor(); XFColor GetHighlightColor();
protected: protected:
std::map<LwpFrib*,OUString>* m_pFribMap;
LwpPara* m_pPara; LwpPara* m_pPara;
LwpFrib* m_pNext; LwpFrib* m_pNext;
sal_uInt8 m_nFribType; sal_uInt8 m_nFribType;
...@@ -119,6 +120,9 @@ public: ...@@ -119,6 +120,9 @@ public:
REV_INSERT =0, REV_INSERT =0,
REV_DELETE = 1, REV_DELETE = 1,
}; };
void Register(std::map<LwpFrib*,OUString>* pFribMap);
void Deregister();
private: private:
static void ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo); static void ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo);
protected: protected:
......
...@@ -89,6 +89,7 @@ LwpChangeMgr::LwpChangeMgr() ...@@ -89,6 +89,7 @@ LwpChangeMgr::LwpChangeMgr()
m_pFribMap = &m_DocFribMap; m_pFribMap = &m_DocFribMap;
m_ChangeList.clear(); m_ChangeList.clear();
} }
LwpChangeMgr::~LwpChangeMgr() LwpChangeMgr::~LwpChangeMgr()
{ {
m_pFribMap=nullptr; m_pFribMap=nullptr;
...@@ -102,6 +103,7 @@ void LwpChangeMgr::AddChangeFrib(LwpFrib* pFrib) ...@@ -102,6 +103,7 @@ void LwpChangeMgr::AddChangeFrib(LwpFrib* pFrib)
m_nCounter++; m_nCounter++;
OUString sID = "ct"+ OUString::number(m_nCounter); OUString sID = "ct"+ OUString::number(m_nCounter);
m_pFribMap->insert(std::pair<LwpFrib*,OUString>(pFrib,sID)); m_pFribMap->insert(std::pair<LwpFrib*,OUString>(pFrib,sID));
pFrib->Register(m_pFribMap);
} }
OUString LwpChangeMgr::GetChangeID(LwpFrib* pFrib) OUString LwpChangeMgr::GetChangeID(LwpFrib* pFrib)
......
...@@ -87,7 +87,8 @@ ...@@ -87,7 +87,8 @@
LwpFrib::LwpFrib(LwpPara* pPara) LwpFrib::LwpFrib(LwpPara* pPara)
: m_pPara(pPara) : m_pFribMap(nullptr)
, m_pPara(pPara)
, m_pNext(nullptr) , m_pNext(nullptr)
, m_nFribType(0) , m_nFribType(0)
, m_pModifiers(nullptr) , m_pModifiers(nullptr)
...@@ -100,6 +101,7 @@ LwpFrib::LwpFrib(LwpPara* pPara) ...@@ -100,6 +101,7 @@ LwpFrib::LwpFrib(LwpPara* pPara)
LwpFrib::~LwpFrib() LwpFrib::~LwpFrib()
{ {
Deregister();
} }
LwpFrib* LwpFrib::CreateFrib(LwpPara* pPara, LwpObjectStream* pObjStrm, sal_uInt8 fribtag,sal_uInt8 editID) LwpFrib* LwpFrib::CreateFrib(LwpPara* pPara, LwpObjectStream* pObjStrm, sal_uInt8 fribtag,sal_uInt8 editID)
...@@ -447,4 +449,18 @@ XFColor LwpFrib::GetHighlightColor() ...@@ -447,4 +449,18 @@ XFColor LwpFrib::GetHighlightColor()
return pGlobal->GetHighlightColor(m_nEditor); 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: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment