mirror of
https://github.com/LibreOffice/core.git
synced 2025-07-23 04:42:03 +00:00
sal Windows : use GetSystemTimePreciseAsFileTime directly.
Function available since Windows 8 according to https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime Change-Id: Ib4bad3a38c47143d4b08fc0225c7b6061f8ac6ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187823 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
This commit is contained in:

committed by
Noel Grandin

parent
00c259068e
commit
027752fd96
@ -32,26 +32,10 @@ sal_Bool SAL_CALL osl_getSystemTime(TimeValue* pTimeVal)
|
||||
{
|
||||
unsigned __int64 CurTime;
|
||||
|
||||
typedef VOID (WINAPI *GetSystemTimePreciseAsFileTime_PROC)(LPFILETIME);
|
||||
|
||||
assert(pTimeVal != nullptr);
|
||||
|
||||
static GetSystemTimePreciseAsFileTime_PROC pGetSystemTimePreciseAsFileTime = []()
|
||||
{
|
||||
HMODULE hModule = GetModuleHandleW( L"Kernel32.dll" );
|
||||
return reinterpret_cast<GetSystemTimePreciseAsFileTime_PROC>(
|
||||
GetProcAddress(hModule, "GetSystemTimePreciseAsFileTime"));
|
||||
}();
|
||||
|
||||
// use ~1 microsecond resolution if available
|
||||
if (pGetSystemTimePreciseAsFileTime)
|
||||
pGetSystemTimePreciseAsFileTime(reinterpret_cast<LPFILETIME>(&CurTime));
|
||||
else
|
||||
{
|
||||
SYSTEMTIME SystemTime;
|
||||
GetSystemTime(&SystemTime);
|
||||
SystemTimeToFileTime(&SystemTime, reinterpret_cast<LPFILETIME>(&CurTime));
|
||||
}
|
||||
// use ~1 microsecond resolution
|
||||
GetSystemTimePreciseAsFileTime(reinterpret_cast<LPFILETIME>(&CurTime));
|
||||
|
||||
static const unsigned __int64 OffTime = [] {
|
||||
SYSTEMTIME SystemTime;
|
||||
|
Reference in New Issue
Block a user