X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55d99c7a77789ff4904bf96eddca3715eb5af9b9..eaf6274cc01dec5faebd88d9cd06c17a462d32c5:/src/common/timercmn.cpp diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp index 5f08b29800..767ce02e29 100644 --- a/src/common/timercmn.cpp +++ b/src/common/timercmn.cpp @@ -346,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