GC: fix backtrace reporting
The addition ot limited recursive marking broke the implementation of memory-debugging backtraces.
This commit is contained in:
parent
027dd9a43c
commit
84bffd41af
|
@ -3223,11 +3223,17 @@ static void promote_marked_gen0_big_page(NewGC *gc, mpage *page) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MZ_GC_BACKTRACE
|
||||||
|
# define BACKTRACE_DISABLES_RECUR 1
|
||||||
|
#else
|
||||||
|
# define BACKTRACE_DISABLES_RECUR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
static void mark_recur_or_push_ptr(struct NewGC *gc, void *p, int is_a_master_page, int inc_gen1)
|
static void mark_recur_or_push_ptr(struct NewGC *gc, void *p, int is_a_master_page, int inc_gen1)
|
||||||
{
|
{
|
||||||
objhead *ohead = OBJPTR_TO_OBJHEAD(p);
|
objhead *ohead = OBJPTR_TO_OBJHEAD(p);
|
||||||
|
|
||||||
if ((gc->mark_depth < MAX_RECUR_MARK_DEPTH) && !is_a_master_page && !inc_gen1) {
|
if ((gc->mark_depth < MAX_RECUR_MARK_DEPTH) && !is_a_master_page && !inc_gen1 && !BACKTRACE_DISABLES_RECUR) {
|
||||||
switch (ohead->type) {
|
switch (ohead->type) {
|
||||||
case PAGE_TAGGED:
|
case PAGE_TAGGED:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user