toolkit/source/controls/stdtabcontroller.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
New commits: commit 9e2034c0330f969b6795dd9ec8771fdad34777a6 Author: Stephan Bergmann <[email protected]> Date: Fri Mar 22 19:13:34 2013 +0100 Missing solar mutex ...as witnessed by the triggered assert MSVCR90!wassert+0x641 vcllo!ImplDbgTestSolarMutex+0x72 [c:\lo\core\vcl\source\app\dbggui.cxx @ 1750] tllo!DbgFunc+0x47a [c:\lo\core\tools\source\debug\debug.cxx @ 1120] vcllo!DbgTestSolarMutex+0xd [c:\lo\core\solver\wntmsci12\inc\tools\debug.hxx @ 295] vcllo!OutputDevice::ImplInitClipRegion+0x2d [c:\lo\core\vcl\source\gdi\outdev.cxx @ 913] vcllo!Window::Invert+0xef [c:\lo\core\vcl\source\window\window2.cxx @ 411] vcllo!ImplCursorInvert+0x437 [c:\lo\core\vcl\source\window\cursor.cxx @ 120] vcllo!Cursor::ImplRestore+0x27 [c:\lo\core\vcl\source\window\cursor.cxx @ 159] vcllo!Cursor::ImplDoHide+0x40 [c:\lo\core\vcl\source\window\cursor.cxx @ 216] vcllo!Cursor::ImplHide+0x3c [c:\lo\core\vcl\source\window\cursor.cxx @ 234] vcllo!Window::ImplGrabFocus+0x4aa [c:\lo\core\vcl\source\window\window.cxx @ 4053] vcllo!Window::GrabFocus+0x52 [c:\lo\core\vcl\source\window\window.cxx @ 7544] tklo!StdTabController::ImplActivateControl+0x1fe [c:\lo\core\toolkit\source\controls\stdtabcontroller.cxx @ 152] tklo!StdTabController::activateFirst+0x45 [c:\lo\core\toolkit\source\controls\stdtabcontroller.cxx @ 354] msci_uno!`anonymous namespace'::callVirtualMethod+0x8a [c:\lo\core\bridges\source\cpp_uno\msvc_win32_intel\uno2cpp.cxx @ 76] msci_uno!`anonymous namespace'::cpp_call+0x4b3 [c:\lo\core\bridges\source\cpp_uno\msvc_win32_intel\uno2cpp.cxx @ 257] msci_uno!bridges::cpp_uno::shared::unoInterfaceProxyDispatch+0x321 [c:\lo\core\bridges\source\cpp_uno\msvc_win32_intel\uno2cpp.cxx @ 438] binaryurp_uno!binaryurp::IncomingRequest::execute_throw+0xaa8 [c:\lo\core\binaryurp\source\incomingrequest.cxx @ 245] binaryurp_uno!binaryurp::IncomingRequest::execute+0xe0 [c:\lo\core\binaryurp\source\incomingrequest.cxx @ 74] binaryurp_uno!request+0x6b [c:\lo\core\binaryurp\source\reader.cxx @ 85] cppu3!cppu_threadpool::JobQueue::enter+0x28d [c:\lo\core\cppu\source\threadpool\jobqueue.cxx @ 115] cppu3!cppu_threadpool::ORequestThread::run+0xc6 [c:\lo\core\cppu\source\threadpool\thread.cxx @ 175] cppu3!threadFunc+0x18 [c:\lo\core\solver\wntmsci12\inc\osl\thread.hxx @ 187] sal3!oslWorkerWrapperFunction+0x23 [c:\lo\core\sal\osl\w32\thread.c @ 60] during JunitTest_toolkit_unoapi on Windows (which does not use a headless mode for those tests). Whether locking the class instance's GetMutex() is really necessary here I do not know, but at least be careful to lock the global solar mutex first. Change-Id: Icbd7936f4bf8433ef6a36912566d43361e911429 diff --git a/toolkit/source/controls/stdtabcontroller.cxx b/toolkit/source/controls/stdtabcontroller.cxx index f9d9ae1..08969cf 100644 --- a/toolkit/source/controls/stdtabcontroller.cxx +++ b/toolkit/source/controls/stdtabcontroller.cxx @@ -28,6 +28,7 @@ #include <rtl/uuid.h> #include <tools/debug.hxx> +#include <vcl/svapp.hxx> #include <vcl/window.hxx> #include <comphelper/sequence.hxx> @@ -348,14 +349,16 @@ void StdTabController::activateTabOrder( ) throw(RuntimeException) void StdTabController::activateFirst( ) throw(RuntimeException) { - ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); + SolarMutexGuard aSolarGuard; + ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); //TODO: necessary? ImplActivateControl( sal_True ); } void StdTabController::activateLast( ) throw(RuntimeException) { - ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); + SolarMutexGuard aSolarGuard; + ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); //TODO: necessary? ImplActivateControl( sal_False ); } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
