summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-03-22 19:13:34 +0100
committerStephan Bergmann <sbergman@redhat.com>2013-03-22 19:17:20 +0100
commit9e2034c0330f969b6795dd9ec8771fdad34777a6 (patch)
tree2bfa98609b71991136a3d9e1e2e34e9518963fe6 /toolkit
parent8d68b885b021a60af0fd199a167cbaeac1f15116 (diff)
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
Diffstat (limited to 'toolkit')
-rw-r--r--toolkit/source/controls/stdtabcontroller.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/toolkit/source/controls/stdtabcontroller.cxx b/toolkit/source/controls/stdtabcontroller.cxx
index f9d9ae1ff15c..08969cf70f11 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 );
}