bool BaseFrameStream::check_magic(objArrayHandle frames_array) { oop m1 = frames_array->obj_at(magic_pos); jlong m2 = _anchor; if (m1 == _thread->threadObj() && m2 == address_value()) return true; return false; }
bool StackWalkAnchor::check_magic(objArrayHandle classes_array) { oop m1 = classes_array->obj_at(magic_pos); jlong m2 = _anchor; if (m1 == _thread->threadObj() && m2 == address_value()) return true; return false; }
// setup and cleanup actions void BaseFrameStream::setup_magic_on_entry(objArrayHandle frames_array) { frames_array->obj_at_put(magic_pos, _thread->threadObj()); _anchor = address_value(); assert(check_magic(frames_array), "invalid magic"); }
// setup and cleanup actions void StackWalkAnchor::setup_magic_on_entry(objArrayHandle classes_array) { classes_array->obj_at_put(magic_pos, _thread->threadObj()); _anchor = address_value(); assert(check_magic(classes_array), "invalid magic"); }