summaryrefslogtreecommitdiff
path: root/framework/source/uielement/controlmenucontroller.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-06-20 15:56:35 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-06-23 06:28:00 +0000
commitaa0d0536a444fb26d9e570bd6bf6c1bdc3596cf3 (patch)
tree8b2a5207e77fa4054a37b33c25378c23a00af8ed /framework/source/uielement/controlmenucontroller.cxx
parentb722f3d6fc72877e8caaaae7291d5d736ddc494d (diff)
tdf#97527 - vcl: reference-count Menu
some places are marked with "dodgy"- need to check those to see what is going on, because they are leaving dangling pointers behind in the Menu class Change-Id: I41d5c7c0fec2f70ce9e3ffdc48cd03d26c0a869b Reviewed-on: https://gerrit.libreoffice.org/26516 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'framework/source/uielement/controlmenucontroller.cxx')
-rw-r--r--framework/source/uielement/controlmenucontroller.cxx8
1 files changed, 4 insertions, 4 deletions
diff --git a/framework/source/uielement/controlmenucontroller.cxx b/framework/source/uielement/controlmenucontroller.cxx
index 00e91ace4749..f9852acbceab 100644
--- a/framework/source/uielement/controlmenucontroller.cxx
+++ b/framework/source/uielement/controlmenucontroller.cxx
@@ -233,8 +233,8 @@ private:
void updateImagesPopupMenu( PopupMenu* pPopupMenu );
void fillPopupMenu( uno::Reference< awt::XPopupMenu >& rPopupMenu );
- bool m_bShowMenuImages : 1;
- PopupMenu* m_pResPopupMenu;
+ bool m_bShowMenuImages : 1;
+ VclPtr<PopupMenu> m_pResPopupMenu;
UrlToDispatchMap m_aURLToDispatchMap;
};
@@ -300,7 +300,7 @@ void SAL_CALL ControlMenuController::disposing( const EventObject& ) throw ( Run
if ( m_xPopupMenu.is() )
m_xPopupMenu->removeMenuListener( Reference< css::awt::XMenuListener >(static_cast<OWeakObject *>(this), UNO_QUERY ));
m_xPopupMenu.clear();
- delete m_pResPopupMenu;
+ m_pResPopupMenu.disposeAndClear();
}
// XStatusListener
@@ -398,7 +398,7 @@ void ControlMenuController::impl_setPopupMenu()
aResId.SetRT( RSC_MENU );
if ( pResMgr->IsAvailable( aResId ))
{
- m_pResPopupMenu = new PopupMenu( aResId );
+ m_pResPopupMenu = VclPtr<PopupMenu>::Create( aResId );
updateImagesPopupMenu( m_pResPopupMenu );
}
}