X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..68698f0308f5c46966b7de12b34f68ec23dd3ec8:/src/common/timercmn.cpp diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp index 28f69dae3b..767ce02e29 100644 --- a/src/common/timercmn.cpp +++ b/src/common/timercmn.cpp @@ -9,9 +9,9 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // (c) 1999 Guillermo Rodriguez -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -169,6 +169,7 @@ void wxStopWatch::Start(long t) { m_t0 = wxGetLocalTimeMillis() - t; m_pause = 0; + m_pauseCount = 0; } long wxStopWatch::GetElapsedTime() const @@ -345,20 +346,24 @@ wxLongLong wxGetLocalTimeMillis() return (val + tp.millitm); #elif defined(__WXMAC__) - UInt64 gMilliAtStart = 0 ; - Nanoseconds upTime = AbsoluteToNanoseconds( UpTime() ) ; + static UInt64 gMilliAtStart = 0; + + Nanoseconds upTime = AbsoluteToNanoseconds( UpTime() ); + if ( gMilliAtStart == 0 ) { - time_t start = time(NULL) ; - gMilliAtStart = ((UInt64) start) * 1000L ; + time_t start = time(NULL); + gMilliAtStart = ((UInt64) start) * 1000000L; gMilliAtStart -= upTime.lo / 1000 ; - gMilliAtStart -= ( ( (UInt64) upTime.hi ) << 32 ) / 1000 ; + gMilliAtStart -= ( ( (UInt64) upTime.hi ) << 32 ) / (1000 * 1000); } - UInt64 millival = gMilliAtStart ; - millival += upTime.lo / 1000 ; - millival += ( ( (UInt64) upTime.hi ) << 32 ) / 1000 ; - val = millival ; - return val ; + + UInt64 millival = gMilliAtStart; + millival += upTime.lo / (1000 * 1000); + millival += ( ( (UInt64) upTime.hi ) << 32 ) / (1000 * 1000); + val = millival; + + return val; #else // no gettimeofday() nor ftime() // We use wxGetLocalTime() to get the seconds since // 00:00:00 Jan 1st 1970 and then whatever is available