< prev index next >

src/hotspot/share/prims/stackwalk.cpp

roman_version

*** 46,56 **** } 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 BaseFrameStream::cleanup_magic_on_exit(objArrayHandle frames_array) { bool ok = check_magic(frames_array); --- 46,56 ---- } bool BaseFrameStream::check_magic(objArrayHandle frames_array) { oop m1 = frames_array->obj_at(magic_pos); jlong m2 = _anchor; ! if (oopDesc::equals(m1, _thread->threadObj()) && m2 == address_value()) return true; return false; } bool BaseFrameStream::cleanup_magic_on_exit(objArrayHandle frames_array) { bool ok = check_magic(frames_array); ***************
*** 77,87 **** BaseFrameStream* BaseFrameStream::from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array) { assert(thread != NULL && thread->is_Java_thread(), ""); oop m1 = frames_array->obj_at(magic_pos); ! if (m1 != thread->threadObj()) return NULL; if (magic == 0L) return NULL; BaseFrameStream* stream = (BaseFrameStream*) (intptr_t) magic; if (!stream->is_valid_in(thread, frames_array)) return NULL; return stream; } --- 77,87 ---- BaseFrameStream* BaseFrameStream::from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array) { assert(thread != NULL && thread->is_Java_thread(), ""); oop m1 = frames_array->obj_at(magic_pos); ! if (!oopDesc::equals(m1, thread->threadObj())) return NULL; if (magic == 0L) return NULL; BaseFrameStream* stream = (BaseFrameStream*) (intptr_t) magic; if (!stream->is_valid_in(thread, frames_array)) return NULL; return stream; }
< prev index next >