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

Stephan Bergmann sbergman at redhat.com
Tue Nov 22 15:47:54 UTC 2016


 framework/source/services/autorecovery.cxx |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

New commits:
commit e19ffa13594640655841f26d797fcd8f49733932
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Nov 22 16:46:14 2016 +0100

    Revert "Timer::Start must be called with SolarMutex locked"
    
    This reverts commit 1c3e88a4ffd927d4dda8bb9e0d05cddc6cd685c0; the static
    AutoRecovery instance is only destroyed during exit, but wants to use
    SolarMutex; that causes crashes at least in CppunitTest_services.  Apparently
    needs more thought.

diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 6d0e064..dec1ee8 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -2249,7 +2249,6 @@ void AutoRecovery::implts_updateTimer()
 {
     implts_stopTimer();
 
-    sal_Int32 nMilliSeconds = 0;
     /* SAFE */ {
     osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex);
 
@@ -2259,6 +2258,7 @@ void AutoRecovery::implts_updateTimer()
        )
         return;
 
+    sal_Int32 nMilliSeconds = 0;
     if (m_eTimerType == AutoRecovery::E_NORMAL_AUTOSAVE_INTERVALL)
     {
         nMilliSeconds = (m_nAutoSaveTimeIntervall*60000); // [min] => 60.000 ms
@@ -2270,16 +2270,15 @@ void AutoRecovery::implts_updateTimer()
     else if (m_eTimerType == AutoRecovery::E_POLL_TILL_AUTOSAVE_IS_ALLOWED)
         nMilliSeconds = 300; // there is a minimum time frame, where the user can lose some key input data!
 
-    } /* SAFE */
-
-    SolarMutexGuard g;
     m_aTimer.SetTimeout(nMilliSeconds);
     m_aTimer.Start();
+
+    } /* SAFE */
 }
 
 void AutoRecovery::implts_stopTimer()
 {
-    SolarMutexGuard g;
+    osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex);
 
     if (!m_aTimer.IsActive())
         return;


More information about the Libreoffice-commits mailing list