Test NO_WRAP_MARK_SOME macro to suppress WRAP_MARK_SOME-specific code
authorIvan Maidanski <ivmai@mail.ru>
Mon, 15 Jul 2013 14:08:01 +0000 (18:08 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 15 Jul 2013 14:08:01 +0000 (18:08 +0400)
* mark.c (WRAP_MARK_SOME): Do not define if NO_WRAP_MARK_SOME defined.

mark.c

diff --git a/mark.c b/mark.c
index 41de14c..9aa13ec 100644 (file)
--- a/mark.c
+++ b/mark.c
@@ -288,9 +288,10 @@ STATIC struct hblk * GC_push_next_marked_uncollectable(struct hblk *h);
 
 static void alloc_mark_stack(size_t);
 
-# if (defined(MSWIN32) || defined(MSWINCE)) && !defined(__GNUC__) \
-        || defined(MSWIN32) && defined(I386) /* for Win98 */ \
-        || defined(USE_PROC_FOR_LIBRARIES) && defined(THREADS)
+# if (((defined(MSWIN32) || defined(MSWINCE)) && !defined(__GNUC__)) \
+        || (defined(MSWIN32) && defined(I386)) /* for Win98 */ \
+        || (defined(USE_PROC_FOR_LIBRARIES) && defined(THREADS))) \
+     && !defined(NO_WRAP_MARK_SOME)
     /* Under rare conditions, we may end up marking from nonexistent memory. */
     /* Hence we need to be prepared to recover by running GC_mark_some       */
     /* with a suitable handler in place.                                     */