cui/source/options/optaboutconfig.cxx | 6 ++++-- cui/source/options/optaboutconfig.hxx | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-)
New commits: commit 8e0352ecba4b7c72086f8b25d3f7fede8906a6d1 Author: Julien Nabet <serval2...@yahoo.fr> Date: Sat Sep 9 12:12:28 2017 +0200 tdf#112254: fix memory leak in optaboutconfig (cui) Store UserData objects in a member defined as vector of unique_ptr so we're sure UserData objects will be destroyed when out of the scope Change-Id: Ib5494ad563272adcf64035300f3213688437fcfc Reviewed-on: https://gerrit.libreoffice.org/42123 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 0fe009240837..717ae6d9ccf9 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -210,7 +210,8 @@ void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, const OUS pEntry->AddItem(o3tl::make_unique<SvLBoxString>(rStatus)); pEntry->AddItem(o3tl::make_unique<SvLBoxString>(rType)); pEntry->AddItem(o3tl::make_unique<SvLBoxString>(rValue)); - pEntry->SetUserData( new UserData(rPropertyPath) ); + m_vectorUserData.push_back(o3tl::make_unique<UserData>(rPropertyPath)); + pEntry->SetUserData(m_vectorUserData.back().get()); if(bInsertToPrefBox) m_pPrefBox->Insert( pEntry, pParentEntry ); @@ -291,7 +292,8 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces pEntry->AddItem(o3tl::make_unique<SvLBoxString>("")); pEntry->AddItem(o3tl::make_unique<SvLBoxString>("")); - pEntry->SetUserData( new UserData(xNextNameAccess, lineage + 1) ); + m_vectorUserData.push_back(o3tl::make_unique<UserData>(xNextNameAccess, lineage + 1)); + pEntry->SetUserData(m_vectorUserData.back().get()); pEntry->EnableChildrenOnDemand(); m_pPrefBox->Insert( pEntry, pParentEntry ); } diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx index b33be6505207..5efef99828e0 100644 --- a/cui/source/options/optaboutconfig.hxx +++ b/cui/source/options/optaboutconfig.hxx @@ -24,6 +24,7 @@ namespace svx { class OptHeaderTabListBox; } class CuiAboutConfigTabPage; class CuiAboutConfigValueDialog; struct Prop_Impl; +struct UserData; class CuiCustomMultilineEdit : public Edit { @@ -46,6 +47,7 @@ private: VclPtr<PushButton> m_pEditBtn; VclPtr<PushButton> m_pSearchBtn; VclPtr<Edit> m_pSearchEdit; + std::vector < std::unique_ptr<UserData> > m_vectorUserData; SvTreeListEntries m_modifiedPrefBoxEntries; std::vector< std::shared_ptr< Prop_Impl > > m_vectorOfModified; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits