include/sfx2/notebookbar/NotebookbarTabControl.hxx | 6 ++++-- sfx2/source/notebookbar/NotebookbarTabControl.cxx | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-)
New commits: commit 642ae256ea5b8083ba0b3c097ca8ea52304b9cdb Author: Stephan Bergmann <[email protected]> Date: Mon Jun 26 09:57:54 2017 +0200 ChangedUIEventListener is refcounted, mustn't be helt by unique_ptr Fixes c0ce1ec3736be861a2ed58827fadb25269ab0117 "loplugin:unusedfields in sfx2 part1" part on "fix a memory leak in NotebookbarTabControl where it was not freeing it's m_pListener field", which now caused ASan to report heap-use-after- free during CppunitTest_sw_dialogs_test. Change-Id: Ic0209650692a34abd1ee451713615a03ed9c746f diff --git a/include/sfx2/notebookbar/NotebookbarTabControl.hxx b/include/sfx2/notebookbar/NotebookbarTabControl.hxx index 9f6640dfe062..fa1b13cc10db 100644 --- a/include/sfx2/notebookbar/NotebookbarTabControl.hxx +++ b/include/sfx2/notebookbar/NotebookbarTabControl.hxx @@ -13,9 +13,11 @@ #include <vcl/toolbox.hxx> #include <sfx2/dllapi.h> #include <vcl/tabctrl.hxx> -#include <memory> class ChangedUIEventListener; +namespace com { namespace sun { namespace star { namespace ui { + class XUIConfigurationListener; +} } } } class SFX2_DLLPUBLIC NotebookbarTabControl : public NotebookbarTabControlBase { @@ -36,7 +38,7 @@ private: ); DECL_LINK(OpenNotebookbarPopupMenu, NotebookBar*, void); - std::unique_ptr<ChangedUIEventListener> m_pListener; + css::uno::Reference<css::ui::XUIConfigurationListener> m_pListener; css::uno::Reference<css::frame::XFrame> m_xFrame; protected: diff --git a/sfx2/source/notebookbar/NotebookbarTabControl.cxx b/sfx2/source/notebookbar/NotebookbarTabControl.cxx index 9bf86aa6d505..fbff4b02661f 100644 --- a/sfx2/source/notebookbar/NotebookbarTabControl.cxx +++ b/sfx2/source/notebookbar/NotebookbarTabControl.cxx @@ -130,7 +130,6 @@ public: NotebookbarTabControl::NotebookbarTabControl( Window* pParent ) : NotebookbarTabControlBase( pParent ) -, m_pListener( nullptr ) , m_bInitialized( false ) , m_bInvalidate( true ) { @@ -150,7 +149,7 @@ void NotebookbarTabControl::StateChanged(StateChangedType nStateChange) SetToolBox( static_cast<ToolBox*>( pShortcuts.get() ) ); SetIconClickHdl( LINK( this, NotebookbarTabControl, OpenNotebookbarPopupMenu ) ); - m_pListener.reset( new ChangedUIEventListener( this ) ); + m_pListener = new ChangedUIEventListener( this ); m_bInitialized = true; } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
