[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