diff options
-rw-r--r-- | framework/inc/uielement/toolbarmanager.hxx | 2 | ||||
-rw-r--r-- | framework/source/uielement/toolbarmanager.cxx | 8 | ||||
-rw-r--r-- | framework/source/uielement/toolbarmerger.cxx | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/framework/inc/uielement/toolbarmanager.hxx b/framework/inc/uielement/toolbarmanager.hxx index 8a87c2a6b78a..6de526423d38 100644 --- a/framework/inc/uielement/toolbarmanager.hxx +++ b/framework/inc/uielement/toolbarmanager.hxx @@ -92,7 +92,7 @@ public: virtual vcl::ImageType GetImageSize() = 0; virtual void ConnectCallbacks(ToolBarManager* pManager) = 0; virtual void SetMenuType(ToolBoxMenuType eType) = 0; - virtual void MergeToolbar(ToolBoxItemId nItemId, + virtual void MergeToolbar(ToolBoxItemId & rItemId, const OUString& rModuleIdentifier, CommandToInfoMap& rCommandMap, MergeToolbarInstruction& rInstruction) = 0; diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index f08cfe60a6d8..e85de886b442 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -333,7 +333,7 @@ public: m_pToolBar->SetMenuType( eType ); } - virtual void MergeToolbar(ToolBoxItemId nItemId, + virtual void MergeToolbar(ToolBoxItemId & rItemId, const OUString& rModuleIdentifier, CommandToInfoMap& rCommandMap, MergeToolbarInstruction& rInstruction) override @@ -349,7 +349,7 @@ public: { ToolBarMerger::ProcessMergeOperation( m_pToolBar, aRefPoint.nPos, - nItemId, + rItemId, rCommandMap, rModuleIdentifier, rInstruction.aMergeCommand, @@ -359,7 +359,7 @@ public: else { ToolBarMerger::ProcessMergeFallback( m_pToolBar, - nItemId, + rItemId, rCommandMap, rModuleIdentifier, rInstruction.aMergeCommand, @@ -521,7 +521,7 @@ public: virtual void SetMenuType(ToolBoxMenuType /*eType*/) override {} - virtual void MergeToolbar(ToolBoxItemId /*nItemId*/, + virtual void MergeToolbar(ToolBoxItemId & /*rItemId*/, const OUString& /*rModuleIdentifier*/, CommandToInfoMap& /*rCommandMap*/, MergeToolbarInstruction& /*rInstruction*/) override {} diff --git a/framework/source/uielement/toolbarmerger.cxx b/framework/source/uielement/toolbarmerger.cxx index 652383988bcd..faba3cb4e8d9 100644 --- a/framework/source/uielement/toolbarmerger.cxx +++ b/framework/source/uielement/toolbarmerger.cxx @@ -623,6 +623,8 @@ rtl::Reference<::cppu::OWeakObject> ToolBarMerger::CreateController( void ToolBarMerger::CreateToolbarItem( ToolBox* pToolbar, ToolBox::ImplToolItems::size_type nPos, ToolBoxItemId nItemId, const AddonToolbarItem& rItem ) { + assert(pToolbar->GetItemData(nItemId) == nullptr); // that future would contain a double free + pToolbar->InsertItem( nItemId, rItem.aLabel, ToolBoxItemBits::NONE, nPos ); pToolbar->SetItemCommand( nItemId, rItem.aCommandURL ); pToolbar->SetQuickHelpText( nItemId, rItem.aLabel ); |