Fix build on WinRT
authorKonstantin Ritt <ritt.ks@gmail.com>
Sun, 25 Jan 2015 04:13:24 +0000 (08:13 +0400)
committerKonstantin Ritt <ritt.ks@gmail.com>
Sun, 25 Jan 2015 04:13:24 +0000 (08:13 +0400)
There is no environment (like WinCE) and the basic version
of InitializeCriticalSection is unsupported.

https://codereview.qt-project.org/#/c/92496/

src/hb-mutex-private.hh
src/hb-private.hh

index 6281201..a8ea39c 100644 (file)
 #include <windows.h>
 typedef CRITICAL_SECTION hb_mutex_impl_t;
 #define HB_MUTEX_IMPL_INIT     {0}
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
+#define hb_mutex_impl_init(M)  InitializeCriticalSectionEx (M, 0, 0)
+#else
 #define hb_mutex_impl_init(M)  InitializeCriticalSection (M)
+#endif
 #define hb_mutex_impl_lock(M)  EnterCriticalSection (M)
 #define hb_mutex_impl_unlock(M)        LeaveCriticalSection (M)
 #define hb_mutex_impl_finish(M)        DeleteCriticalSection (M)
index c92cdec..8438fae 100644 (file)
 #define getenv(Name) NULL
 #define setlocale(Category, Locale) "C"
 static int errno = 0; /* Use something better? */
+#elif defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
+#define getenv(Name) NULL
 #endif
 
 #if HAVE_ATEXIT