[Libreoffice-commits] core.git: 4 commits - scp2/inc vcl/inc vcl/source vcl/win xmloff/source

Michael Stahl mstahl at redhat.com
Thu Sep 25 12:03:59 PDT 2014


 scp2/inc/macros.inc                         |   11 -----------
 vcl/inc/win/saltimer.h                      |    5 ++---
 vcl/source/app/timer.cxx                    |   11 +++++++++--
 vcl/win/source/app/saltimer.cxx             |    2 +-
 xmloff/source/transform/TransformerBase.cxx |    2 ++
 5 files changed, 14 insertions(+), 17 deletions(-)

New commits:
commit 24a0129274ebfd41b4a2e81ec7cb5be238b9cf78
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 25 20:43:53 2014 +0200

    assert that XMLTransformerBase::m_xHandler is initialized
    
    Just seen a test with a null m_xHandler, no idea how that happened.
    
    Change-Id: I2e5ff9d3c799284beea5fdca37fa8a825f8a4756

diff --git a/xmloff/source/transform/TransformerBase.cxx b/xmloff/source/transform/TransformerBase.cxx
index 513692f..f74c687 100644
--- a/xmloff/source/transform/TransformerBase.cxx
+++ b/xmloff/source/transform/TransformerBase.cxx
@@ -489,6 +489,8 @@ void SAL_CALL XMLTransformerBase::initialize( const Sequence< Any >& aArguments
 
         }
     }
+
+    assert(m_xHandler.is()); // can't do anything without that
 }
 
 static sal_Int16 lcl_getUnit( const OUString& rValue )
commit 021307d659984e937b18b9eb760d8d8d8b91da54
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 25 18:12:46 2014 +0200

    vcl: avoid crashes from Timer Queues on shutdown
    
    The timer callback SalTimerProc can be called after DeInitVCL has
    deleted the SalInstance, and crash.  Avoid that by calling
    WinSalTimer::Stop() and also using the INVALID_HANDLE_VALUE parameter
    which waits until the timer callback is done executing.
    
    Change-Id: Ia4cf2cf9dc48904d077e0a691e14107256c50ded

diff --git a/vcl/source/app/timer.cxx b/vcl/source/app/timer.cxx
index 1f9870b..703f7e8 100644
--- a/vcl/source/app/timer.cxx
+++ b/vcl/source/app/timer.cxx
@@ -43,6 +43,12 @@ void Timer::ImplDeInitTimer()
     ImplSVData*     pSVData = ImplGetSVData();
     ImplTimerData*  pTimerData = pSVData->mpFirstTimerData;
 
+    // on WNT the timer queue thread needs killing
+    if (pSVData->mpSalTimer)
+    {
+        pSVData->mpSalTimer->Stop();
+    }
+
     if ( pTimerData )
     {
         do
@@ -60,9 +66,10 @@ void Timer::ImplDeInitTimer()
 
         pSVData->mpFirstTimerData   = NULL;
         pSVData->mnTimerPeriod      = 0;
-        delete pSVData->mpSalTimer;
-        pSVData->mpSalTimer = NULL;
     }
+
+    delete pSVData->mpSalTimer;
+    pSVData->mpSalTimer = 0;
 }
 
 static void ImplStartTimer( ImplSVData* pSVData, sal_uLong nMS )
diff --git a/vcl/win/source/app/saltimer.cxx b/vcl/win/source/app/saltimer.cxx
index f54e2a3..9191d5e 100644
--- a/vcl/win/source/app/saltimer.cxx
+++ b/vcl/win/source/app/saltimer.cxx
@@ -38,7 +38,7 @@ void ImplSalStopTimer(SalData* pSalData)
 {
     HANDLE hTimer = pSalData->mnTimerId;
     pSalData->mnTimerId = 0;
-    DeleteTimerQueueTimer(NULL, hTimer, 0);
+    DeleteTimerQueueTimer(NULL, hTimer, INVALID_HANDLE_VALUE);
 }
 
 void ImplSalStartTimer( sal_uLong nMS, bool bMutex )
commit 3cf9e1156d96b911632e0246271a49b9b9d819c6
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 25 17:45:16 2014 +0200

    use SAL_OVERRIDE for WinSalTimer
    
    ... and no, we do not "overload" virtual methods.
    
    Change-Id: Iff7c46326974995994e966873ff804092bc53540

diff --git a/vcl/inc/win/saltimer.h b/vcl/inc/win/saltimer.h
index 93d98d6..adc0fea 100644
--- a/vcl/inc/win/saltimer.h
+++ b/vcl/inc/win/saltimer.h
@@ -28,9 +28,8 @@ public:
     WinSalTimer() {}
     virtual ~WinSalTimer();
 
-    // overload all pure virtual methods
-    void            Start( sal_uIntPtr nMS );
-    void            Stop();
+    virtual void Start(sal_uIntPtr nMS) SAL_OVERRIDE;
+    virtual void Stop() SAL_OVERRIDE;
 };
 
 #endif
commit cce464488d7ba1ce10dad40d8fc0c5ae74ad73d5
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Sep 25 17:28:17 2014 +0200

    scp2: remove some very SPECIAL unused macros
    
    Change-Id: I28f2f4bc3c43aac1faf8be35cf7ce89480487102

diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc
index a2a2f3e..d9bcf20 100644
--- a/scp2/inc/macros.inc
+++ b/scp2/inc/macros.inc
@@ -57,22 +57,11 @@
 #endif
 
 #ifdef UNX
-    #define LIBNAME(name)                     STRING(CONCAT4(lib,name,DLLPOSTFIX,UNXSUFFIX))
     #define EXENAME(name)                     STRING(name)
     #define PROFILENAME(name)                 STRING(CONCAT2(name,rc))
-    #define SPECIAL_NAME(name)                STRING(CONCAT3(lib,name,UNXSUFFIX))
-    #ifdef MACOSX
-       #define SPECIAL_NAME_VER(name,version)    STRING(CONCAT5(lib,name,.,version,UNXSUFFIX))
-    #else
-       #define SPECIAL_NAME_VER(name,version)    STRING(CONCAT5(lib,name,UNXSUFFIX,.,version))
-    #endif
-    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,UNXSUFFIX))
 #else
-    #define LIBNAME(name)                     STRING(CONCAT3(name,DLLPOSTFIX,.dll))
     #define EXENAME(name)                     STRING(CONCAT2(name,.exe))
     #define PROFILENAME(name)                 STRING(CONCAT2(name,.ini))
-    #define SPECIAL_NAME(name)                STRING(CONCAT2(name,.dll))
-    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,.dll))
 #endif
 
 #ifdef MACOSX


More information about the Libreoffice-commits mailing list