vcl/source/app/vclevent.cxx | 12 +++++++++--- vcl/source/window/menu.cxx | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-)
New commits: commit 722f4e1d86710f2facd37d7e040df9e1fd585e26 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Tue Dec 13 11:40:29 2016 +0200 tdf#104573 - Assertion failed: SolarMutex not locked Change-Id: I91d95e73a7e0831f6667f440dd43567ac55b0529 diff --git a/vcl/source/app/vclevent.cxx b/vcl/source/app/vclevent.cxx index 2cab94c..4fec056 100644 --- a/vcl/source/app/vclevent.cxx +++ b/vcl/source/app/vclevent.cxx @@ -92,11 +92,17 @@ VclWindowEvent::VclWindowEvent( vcl::Window* pWin, VclEventId n, void* pDat ) : VclWindowEvent::~VclWindowEvent() {} VclMenuEvent::VclMenuEvent( Menu* pM, VclEventId n, sal_uInt16 nPos ) - : VclSimpleEvent(n), pMenu(pM), mnPos(nPos) -{} + : VclSimpleEvent(n), mnPos(nPos) +{ + SolarMutexGuard aGuard; + pMenu = pM; +} VclMenuEvent::~VclMenuEvent() -{} +{ + SolarMutexGuard aGuard; + pMenu.clear(); +} Menu* VclMenuEvent::GetMenu() const { diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 00b931e..90bd8af 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -1407,6 +1407,7 @@ void Menu::ImplAddDel( ImplMenuDelData& rDel ) SAL_WARN_IF( rDel.mpMenu, "vcl", "Menu::ImplAddDel(): cannot add ImplMenuDelData twice !" ); if( !rDel.mpMenu ) { + SolarMutexGuard aGuard; rDel.mpMenu = this; rDel.mpNext = mpFirstDel; mpFirstDel = &rDel; @@ -1415,7 +1416,10 @@ void Menu::ImplAddDel( ImplMenuDelData& rDel ) void Menu::ImplRemoveDel( ImplMenuDelData& rDel ) { - rDel.mpMenu = nullptr; + { + SolarMutexGuard aGuard; + rDel.mpMenu = nullptr; + } if ( mpFirstDel == &rDel ) { mpFirstDel = rDel.mpNext; @@ -2601,7 +2605,10 @@ bool Menu::HandleMenuActivateEvent( Menu *pMenu ) const { ImplMenuDelData aDelData( this ); - pMenu->pStartedFrom = const_cast<Menu*>(this); + { + SolarMutexGuard aGuard; + pMenu->pStartedFrom = const_cast<Menu*>(this); + } pMenu->bInCallback = true; pMenu->Activate(); @@ -2617,7 +2624,10 @@ bool Menu::HandleMenuDeActivateEvent( Menu *pMenu ) const { ImplMenuDelData aDelData( this ); - pMenu->pStartedFrom = const_cast<Menu*>(this); + { + SolarMutexGuard aGuard; + pMenu->pStartedFrom = const_cast<Menu*>(this); + } pMenu->bInCallback = true; pMenu->Deactivate(); if( !aDelData.isDeleted() ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits