diff --git a/src/hb-mutex-private.hh b/src/hb-mutex-private.hh index 628120195..a8ea39ccf 100644 --- a/src/hb-mutex-private.hh +++ b/src/hb-mutex-private.hh @@ -47,7 +47,11 @@ #include 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) diff --git a/src/hb-private.hh b/src/hb-private.hh index c92cdec51..45b7712ce 100644 --- a/src/hb-private.hh +++ b/src/hb-private.hh @@ -94,12 +94,6 @@ # endif #endif -#if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER) -#define snprintf _snprintf -/* Windows CE only has _strdup, while rest of Windows has both. */ -#define strdup _strdup -#endif - #ifdef _MSC_VER #undef inline #define inline __inline @@ -134,14 +128,20 @@ # ifndef STRICT # define STRICT 1 # endif -#endif -#ifdef _WIN32_WCE -/* Some things not defined on Windows CE. */ -#define MemoryBarrier() -#define getenv(Name) NULL -#define setlocale(Category, Locale) "C" +# if defined(_WIN32_WCE) + /* Some things not defined on Windows CE. */ +# 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 (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER) +# define snprintf _snprintf + /* Windows CE only has _strdup, while rest of Windows has both. */ +# define strdup _strdup +# endif #endif #if HAVE_ATEXIT