diff options
| author | Neil <nyamatongwe@gmail.com> | 2015-01-26 13:07:51 +1100 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2015-01-26 13:07:51 +1100 | 
| commit | ee7577370df33925cbae02c012584e071a9f4cbb (patch) | |
| tree | 5931c611b9cf1bdf38b89e1ff8f28f1f2e4befa6 /qt/ScintillaEditBase/PlatQt.cpp | |
| parent | b42b286f8818b5ab7f2886dc549c75d03d8e4982 (diff) | |
| download | scintilla-mirror-ee7577370df33925cbae02c012584e071a9f4cbb.tar.gz | |
Use QElapsedTimer::nsecsElapsed for more accurate measurement of durations.
Diffstat (limited to 'qt/ScintillaEditBase/PlatQt.cpp')
| -rw-r--r-- | qt/ScintillaEditBase/PlatQt.cpp | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp index 009c54a5a..275cb6e79 100644 --- a/qt/ScintillaEditBase/PlatQt.cpp +++ b/qt/ScintillaEditBase/PlatQt.cpp @@ -33,6 +33,7 @@  #include <QTextLayout>  #include <QTextLine>  #include <QLibrary> +#include <QElapsedTimer>  #include <cstdio>  #ifdef SCI_NAMESPACE @@ -1304,21 +1305,28 @@ int Platform::DBCSCharMaxLength()  //---------------------------------------------------------------------- -static QTime timer; +static QElapsedTimer timer;  ElapsedTime::ElapsedTime() : bigBit(0), littleBit(0)  { -	timer.start(); +	if (!timer.isValid()) { +		timer.start(); +	} +	qint64 ns64Now = timer.nsecsElapsed(); +	bigBit = static_cast<unsigned long>(ns64Now >> 32); +	littleBit = static_cast<unsigned long>(ns64Now & 0xFFFFFFFF);  }  double ElapsedTime::Duration(bool reset)  { -	double result = timer.elapsed(); +	qint64 ns64Now = timer.nsecsElapsed(); +	qint64 ns64Start = (static_cast<qint64>(static_cast<unsigned long>(bigBit)) << 32) + static_cast<unsigned long>(littleBit); +	double result = ns64Now - ns64Start;  	if (reset) { -		timer.restart(); +		bigBit = static_cast<unsigned long>(ns64Now >> 32); +		littleBit = static_cast<unsigned long>(ns64Now & 0xFFFFFFFF);  	} -	result /= 1000.0; -	return result; +	return result / 1000000000.0;	// 1 billion nanoseconds in a second  }  #ifdef SCI_NAMESPACE  | 
