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();
}