Fix innodb compilation failure on Windows

We don't need to print an error when loading kernel32.dll. If we can't
load it we'll automatically crash. Reviewed by wlad@mariadb.com
This commit is contained in:
Vicențiu Ciorbaru 2018-01-25 11:33:34 +02:00
parent 12c42bd2c7
commit f775ee6006
3 changed files with 14 additions and 21 deletions

View File

@ -3645,9 +3645,7 @@ innobase_change_buffering_inited_ok:
#ifndef UNIV_HOTBACKUP #ifndef UNIV_HOTBACKUP
#ifdef _WIN32 #ifdef _WIN32
if (ut_win_init_time()) { ut_win_init_time();
goto mem_free_and_error;
}
#endif /* _WIN32 */ #endif /* _WIN32 */
#endif /* !UNIV_HOTBACKUP */ #endif /* !UNIV_HOTBACKUP */

View File

@ -275,9 +275,10 @@ ut_time_ms(void);
/*============*/ /*============*/
#ifdef _WIN32 #ifdef _WIN32
/**********************************************************//** /**********************************************************//**
Initialise highest available time resolution API on Windows Initialise highest available time resolution API on Windows.
@return 0 if all OK else -1 */ Crashes if there's an error loading kernel32.dll.
int */
void
ut_win_init_time(); ut_win_init_time();
#endif /* _WIN32 */ #endif /* _WIN32 */

View File

@ -49,7 +49,6 @@ Created 5/11/1994 Heikki Tuuri
UNIV_INTERN ibool ut_always_false = FALSE; UNIV_INTERN ibool ut_always_false = FALSE;
#ifdef __WIN__ #ifdef __WIN__
#include <mysql/innodb_priv.h> /* For sql_print_error */
typedef VOID(WINAPI *time_fn)(LPFILETIME); typedef VOID(WINAPI *time_fn)(LPFILETIME);
static time_fn ut_get_system_time_as_file_time = GetSystemTimeAsFileTime; static time_fn ut_get_system_time_as_file_time = GetSystemTimeAsFileTime;
@ -61,25 +60,20 @@ http://support.microsoft.com/kb/167296/ */
/** /**
Initialise highest available time resolution API on Windows Initialise highest available time resolution API on Windows.
@return 0 if all OK else -1 */ Crashes if there's an error loading kernel32.dll.
int */
void
ut_win_init_time() ut_win_init_time()
{ {
HMODULE h = LoadLibrary("kernel32.dll"); HMODULE h = LoadLibrary("kernel32.dll");
if (h != NULL) ut_a(h);
time_fn pfn = (time_fn)GetProcAddress(h, "GetSystemTimePreciseAsFileTime");
if (pfn != NULL)
{ {
time_fn pfn = (time_fn)GetProcAddress(h, "GetSystemTimePreciseAsFileTime"); ut_get_system_time_as_file_time = pfn;
if (pfn != NULL)
{
ut_get_system_time_as_file_time = pfn;
}
return false;
} }
DWORD error = GetLastError(); return;
sql_print_error(
"LoadLibrary(\"kernel32.dll\") failed: GetLastError returns %lu", error);
return(-1);
} }
/*****************************************************************//** /*****************************************************************//**