summaryrefslogtreecommitdiff
path: root/sw/source/core
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-10-29 12:23:43 +0100
committerStephan Bergmann <sbergman@redhat.com>2014-10-29 12:25:21 +0100
commitb9f080e012d0e4f5343da940079c20d3f9c63513 (patch)
tree192cadd8dec59c987b10158fc81c10f5f1f938cb /sw/source/core
parent4f5f6d2444a24138c3d3d378771f87cb06427195 (diff)
Fix -fsanitize=signed-integer-overflow
...when std::clock_t is sufficiently small. Though the formula used in SwLayAction::CheckWaitCrsr does look odd... Change-Id: Iee32350850be4a1896c5cb41eff748f0cb5382a2
Diffstat (limited to 'sw/source/core')
-rw-r--r--sw/source/core/inc/layact.hxx9
-rw-r--r--sw/source/core/layout/layact.cxx13
2 files changed, 11 insertions, 11 deletions
diff --git a/sw/source/core/inc/layact.hxx b/sw/source/core/inc/layact.hxx
index 3d8d42c5875c..897dc7eb9695 100644
--- a/sw/source/core/inc/layact.hxx
+++ b/sw/source/core/inc/layact.hxx
@@ -18,6 +18,11 @@
*/
#ifndef INCLUDED_SW_SOURCE_CORE_INC_LAYACT_HXX
#define INCLUDED_SW_SOURCE_CORE_INC_LAYACT_HXX
+
+#include <sal/config.h>
+
+#include <ctime>
+
#include "swtypes.hxx"
#include "swrect.hxx"
@@ -62,7 +67,7 @@ class SwLayAction
// The InternalAction can then take the appropriate steps.
sal_uInt16 nPreInvaPage;
- sal_uLong nStartTicks; // The Action's starting time; if too much time passes the
+ std::clock_t nStartTicks; // The Action's starting time; if too much time passes the
// WaitCrsr can be enabled via CheckWaitCrsr()
sal_uInt16 nInputType; // Which input should terminate processing
@@ -111,7 +116,7 @@ class SwLayAction
bool RemoveEmptyBrowserPages();
inline void CheckIdleEnd();
- inline sal_uLong GetStartTicks() { return nStartTicks; }
+ inline std::clock_t GetStartTicks() { return nStartTicks; }
public:
SwLayAction( SwRootFrm *pRt, SwViewImp *pImp );
diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index ed0a031d4139..f664f7095962 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -19,7 +19,7 @@
#include <config_features.h>
-#include <time.h>
+#include <ctime>
#include "rootfrm.hxx"
#include "pagefrm.hxx"
#include "viewimp.hxx"
@@ -99,16 +99,11 @@ static void BreakPoint()
} \
}
-inline sal_uLong Ticks()
-{
- return 1000 * clock() / CLOCKS_PER_SEC;
-}
-
void SwLayAction::CheckWaitCrsr()
{
RESCHEDULE
if ( !IsWait() && IsWaitAllowed() && IsPaint() &&
- ((Ticks() - GetStartTicks()) >= CLOCKS_PER_SEC/2) )
+ ((std::clock() - GetStartTicks()) * 1000 / CLOCKS_PER_SEC >= CLOCKS_PER_SEC/2) )
{
pWait = new SwWait( *pRoot->GetFmt()->GetDoc()->GetDocShell(), true );
}
@@ -288,7 +283,7 @@ SwLayAction::SwLayAction( SwRootFrm *pRt, SwViewImp *pI ) :
pOptTab( 0 ),
pWait( 0 ),
nPreInvaPage( USHRT_MAX ),
- nStartTicks( Ticks() ),
+ nStartTicks( std::clock() ),
nInputType( 0 ),
nEndPage( USHRT_MAX ),
nCheckPageNum( USHRT_MAX )
@@ -313,7 +308,7 @@ SwLayAction::~SwLayAction()
void SwLayAction::Reset()
{
pOptTab = 0;
- nStartTicks = Ticks();
+ nStartTicks = std::clock();
nInputType = 0;
nEndPage = nPreInvaPage = nCheckPageNum = USHRT_MAX;
bPaint = bComplete = bWaitAllowed = bCheckPages = true;