Commit 98088533 authored by Chris Toshok's avatar Chris Toshok

don't do isNonheapRoot first, since .so's loading at arbitrary accesses can...

don't do isNonheapRoot first, since .so's loading at arbitrary accesses can put max/min on either side of our gc heap.
parent 96ad4034
......@@ -228,15 +228,13 @@ bool GCVisitor::isValid(void* p) {
}
void GCVisitor::visit(void* p) {
if (!p)
if ((uintptr_t)p < SMALL_ARENA_START || (uintptr_t)p >= HUGE_ARENA_START + ARENA_SIZE) {
ASSERT(isNonheapRoot(p), "%p", p);
return;
if (isNonheapRoot(p)) {
return;
} else {
ASSERT(global_heap.getAllocationFromInteriorPointer(p)->user_data == p, "%p", p);
stack->push(p);
}
ASSERT(global_heap.getAllocationFromInteriorPointer(p)->user_data == p, "%p", p);
stack->push(p);
}
void GCVisitor::visitRange(void* const* start, void* const* end) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment