[Pcre-svn] [1744] code/trunk/sljit/sljitExecAllocator.c: Use…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1744] code/trunk/sljit/sljitExecAllocator.c: Use TARGET_OS_MAC macro in the executable allocator.
Revision: 1744
          http://vcs.pcre.org/viewvc?view=rev&revision=1744
Author:   zherczeg
Date:     2018-12-14 07:57:58 +0000 (Fri, 14 Dec 2018)
Log Message:
-----------
Use TARGET_OS_MAC macro in the executable allocator.


Modified Paths:
--------------
    code/trunk/sljit/sljitExecAllocator.c


Modified: code/trunk/sljit/sljitExecAllocator.c
===================================================================
--- code/trunk/sljit/sljitExecAllocator.c    2018-12-13 13:24:22 UTC (rev 1743)
+++ code/trunk/sljit/sljitExecAllocator.c    2018-12-14 07:57:58 UTC (rev 1744)
@@ -94,20 +94,28 @@


#else

-#ifdef MAP_JIT
+#ifdef __APPLE__
+// Configures TARGET_OS_MAC when appropriate.
+#include <TargetConditionals.h>

-#ifdef __APPLE__
+#if defined TARGET_OS_MAC && defined MAP_JIT
#include <sys/utsname.h>
+#endif /* TARGET_OS_MAC && MAP_JIT */
#endif /* __APPLE__ */

+#ifdef MAP_JIT
+
 static SLJIT_INLINE int get_map_jit_flag()
 {
-#ifdef __APPLE__
+#ifdef TARGET_OS_MAC
     /* On macOS systems, returns MAP_JIT if it is defined _and_ we're running on a version
        of macOS where it's OK to have more than one JIT block. On non-macOS systems, returns
        MAP_JIT if it is defined. */
     static int map_jit_flag = -1;


+    /* The following code is thread safe because multiple initialization
+       sets map_jit_flag to the same value and the code has no side-effects.
+       Changing the kernel version witout system restart is (very) unlikely. */
     if (map_jit_flag == -1) {
         struct utsname name;


@@ -118,9 +126,9 @@
     }


     return map_jit_flag;
-#else /* !__APPLE__ */
+#else /* !TARGET_OS_MAC */
     return MAP_JIT;
-#endif /* __APPLE__ */
+#endif /* TARGET_OS_MAC */
 }


#endif /* MAP_JIT */