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:
Arnaud VERSINI
2025-07-13 20:56:59 +02:00
committed by Noel Grandin
parent 00c259068e
commit 027752fd96

View File

@ -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;