ofz#7063 ensure lifecycle
Change-Id: I18d62bc3bd409ca65c85ea47e8d5b3930481edf9
Reviewed-on: https://gerrit.libreoffice.org/51732
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
diff --git a/lotuswordpro/inc/lwpbookmarkmgr.hxx b/lotuswordpro/inc/lwpbookmarkmgr.hxx
index 08ea7e3..926d4e3 100644
--- a/lotuswordpro/inc/lwpbookmarkmgr.hxx
+++ b/lotuswordpro/inc/lwpbookmarkmgr.hxx
@@ -75,8 +75,8 @@ public:
~LwpBookmarkMgr();
LwpBookmarkMgr();
private:
std::map<OUString,XFBookmarkStart*> m_MapStart;
std::map<OUString,XFBookmarkEnd*> m_MapEnd;
std::map<OUString, rtl::Reference<XFBookmarkStart>> m_MapStart;
std::map<OUString, rtl::Reference<XFBookmarkEnd>> m_MapEnd;
};
#endif
diff --git a/lotuswordpro/source/filter/lwpbookmarkmgr.cxx b/lotuswordpro/source/filter/lwpbookmarkmgr.cxx
index fdfed20..3ce1ef0 100644
--- a/lotuswordpro/source/filter/lwpbookmarkmgr.cxx
+++ b/lotuswordpro/source/filter/lwpbookmarkmgr.cxx
@@ -57,44 +57,41 @@
void LwpBookmarkMgr::AddXFBookmarkStart(const OUString& sName,XFBookmarkStart* pMark)
{
std::map<OUString,XFBookmarkStart*>::iterator iter;
iter = m_MapStart.find(sName);
auto iter = m_MapStart.find(sName);
if (iter == m_MapStart.end())//not find
{
m_MapStart[sName] = pMark;
}
else //have exist the same bookmark name
{
XFBookmarkStart* pFind = iter->second;
OUString totalName = pFind->GetDivision() + ":";
totalName += pFind->GetName();
pFind->SetName(totalName);
m_MapStart[totalName] = pFind;
auto xFind = iter->second;
OUString totalName = xFind->GetDivision() + ":";
totalName += xFind->GetName();
xFind->SetName(totalName);
m_MapStart[totalName] = xFind;
m_MapStart[sName] = pMark;
}
}
void LwpBookmarkMgr::AddXFBookmarkEnd(const OUString& sName,XFBookmarkEnd* pMark)
{
std::map<OUString,XFBookmarkEnd*>::iterator iter;
iter = m_MapEnd.find(sName);
auto iter = m_MapEnd.find(sName);
if (iter == m_MapEnd.end())//not find
{
m_MapEnd[sName] = pMark;
}
else //have exist the same bookmark name
{
XFBookmarkEnd* pFind = iter->second;
OUString totalName = pFind->GetDivision() + ":";
totalName += pFind->GetName();
pFind->SetName(totalName);
m_MapEnd[totalName] = pFind;
auto xFind = iter->second;
OUString totalName = xFind->GetDivision() + ":";
totalName += xFind->GetName();
xFind->SetName(totalName);
m_MapEnd[totalName] = xFind;
m_MapEnd[sName] = pMark;
}
}
bool LwpBookmarkMgr::FindBookmark(const OUString& sName)
{
std::map<OUString,XFBookmarkStart*>::iterator iter;
iter = m_MapStart.find(sName);
auto iter = m_MapStart.find(sName);
return iter != m_MapStart.end();
}