]> granicus.if.org Git - gc/commit
Fix SIGSEGV in mark_from called from do_local_mark if WRAP_MARK_SOME
authorIvan Maidanski <ivmai@mail.ru>
Mon, 18 Sep 2017 07:54:37 +0000 (10:54 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 3 Oct 2017 21:35:45 +0000 (00:35 +0300)
commitda6d0b21ea6f4723bc550a05a87067167df34d01
treede80f089aa5d66913530f310396f5cb69486775d
parent0f4e6e938e9d53693d37dd1fb7a03c534df80c4e
Fix SIGSEGV in mark_from called from do_local_mark if WRAP_MARK_SOME
(Cherry-pick commit 18fcc40 from 'release-7_4' branch.)

Issue #179 (bdwgc).

Parallel marker is disabled (for now) if there is a chance of
scanning unmapped data roots (because GC_do_local_mark is not
prepared to deal with memory protection faults gracefully).

* include/private/gc_pmark.h [HAVE_CONFIG_H]: Do not include config.h
if already included from gc_priv.h (to avoid PARALLEL_MARK macro
redefinition in config.h after it was undefined in gcconfig.h).
* mark.c [MSWIN32 || USE_PROC_FOR_LIBRARIES] (WRAP_MARK_SOME): Move
definition to gcconfig.h.
* include/private/gcconfig.h [WRAP_MARK_SOME && PARALLEL_MARK]
(PARALLEL_MARK): Undefine (as not implemented).
include/private/gc_pmark.h
include/private/gcconfig.h
mark.c