19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.hpp"
27 #include "classfile/javaClasses.inline.hpp"
28 #include "classfile/vmSymbols.hpp"
29 #include "logging/log.hpp"
30 #include "logging/logStream.hpp"
31 #include "memory/oopFactory.hpp"
32 #include "memory/universe.hpp"
33 #include "oops/oop.inline.hpp"
34 #include "oops/objArrayOop.inline.hpp"
35 #include "prims/stackwalk.hpp"
36 #include "runtime/globals.hpp"
37 #include "runtime/handles.inline.hpp"
38 #include "runtime/javaCalls.hpp"
39 #include "runtime/thread.inline.hpp"
40 #include "runtime/vframe.inline.hpp"
41 #include "utilities/globalDefinitions.hpp"
42
43 // setup and cleanup actions
44 void BaseFrameStream::setup_magic_on_entry(objArrayHandle frames_array) {
45 frames_array->obj_at_put(magic_pos, _thread->threadObj());
46 _anchor = address_value();
47 assert(check_magic(frames_array), "invalid magic");
48 }
49
50 bool BaseFrameStream::check_magic(objArrayHandle frames_array) {
51 oop m1 = frames_array->obj_at(magic_pos);
52 jlong m2 = _anchor;
53 if (m1 == _thread->threadObj() && m2 == address_value()) return true;
54 return false;
55 }
56
57 bool BaseFrameStream::cleanup_magic_on_exit(objArrayHandle frames_array) {
58 bool ok = check_magic(frames_array);
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.hpp"
27 #include "classfile/javaClasses.inline.hpp"
28 #include "classfile/vmSymbols.hpp"
29 #include "logging/log.hpp"
30 #include "logging/logStream.hpp"
31 #include "memory/oopFactory.hpp"
32 #include "memory/universe.hpp"
33 #include "oops/oop.inline.hpp"
34 #include "oops/objArrayOop.inline.hpp"
35 #include "prims/stackwalk.hpp"
36 #include "runtime/globals.hpp"
37 #include "runtime/handles.inline.hpp"
38 #include "runtime/javaCalls.hpp"
39 #include "runtime/monitorInfo.inline.hpp"
40 #include "runtime/thread.inline.hpp"
41 #include "runtime/vframe.inline.hpp"
42 #include "utilities/globalDefinitions.hpp"
43
44 // setup and cleanup actions
45 void BaseFrameStream::setup_magic_on_entry(objArrayHandle frames_array) {
46 frames_array->obj_at_put(magic_pos, _thread->threadObj());
47 _anchor = address_value();
48 assert(check_magic(frames_array), "invalid magic");
49 }
50
51 bool BaseFrameStream::check_magic(objArrayHandle frames_array) {
52 oop m1 = frames_array->obj_at(magic_pos);
53 jlong m2 = _anchor;
54 if (m1 == _thread->threadObj() && m2 == address_value()) return true;
55 return false;
56 }
57
58 bool BaseFrameStream::cleanup_magic_on_exit(objArrayHandle frames_array) {
59 bool ok = check_magic(frames_array);
|