[Libreoffice-commits] core.git: toolkit/source

Stephan Bergmann sbergman at redhat.com
Fri Mar 22 11:18:08 PDT 2013


 toolkit/source/controls/stdtabcontroller.cxx |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit 9e2034c0330f969b6795dd9ec8771fdad34777a6
Author: Stephan Bergmann <sbergman at redhat.com>
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 );
 }


More information about the Libreoffice-commits mailing list