63 bool cleanup_magic_on_exit(objArrayHandle frames_array);
64
65 bool is_valid_in(Thread* thread, objArrayHandle frames_array) {
66 return (_thread == thread && check_magic(frames_array));
67 }
68
69 jlong address_value() {
70 return (jlong) castable_address(this);
71 }
72
73 static BaseFrameStream* from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array);
74 };
75
76 class JavaFrameStream : public BaseFrameStream {
77 private:
78 vframeStream _vfst;
79 bool _need_method_info;
80 public:
81 JavaFrameStream(JavaThread* thread, int mode);
82
83 void next() { _vfst.next();}
84 bool at_end() { return _vfst.at_end(); }
85
86 Method* method() { return _vfst.method(); }
87 int bci() { return _vfst.bci(); }
88
89 void fill_frame(int index, objArrayHandle frames_array,
90 const methodHandle& method, TRAPS);
91 };
92
93 class LiveFrameStream : public BaseFrameStream {
94 private:
95 enum {
96 MODE_INTERPRETED = 0x01,
97 MODE_COMPILED = 0x02
98 };
99
100 javaVFrame* _jvf;
101
102 void fill_live_stackframe(Handle stackFrame, const methodHandle& method, TRAPS);
103 static oop create_primitive_slot_instance(StackValueCollection* values,
|
63 bool cleanup_magic_on_exit(objArrayHandle frames_array);
64
65 bool is_valid_in(Thread* thread, objArrayHandle frames_array) {
66 return (_thread == thread && check_magic(frames_array));
67 }
68
69 jlong address_value() {
70 return (jlong) castable_address(this);
71 }
72
73 static BaseFrameStream* from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array);
74 };
75
76 class JavaFrameStream : public BaseFrameStream {
77 private:
78 vframeStream _vfst;
79 bool _need_method_info;
80 public:
81 JavaFrameStream(JavaThread* thread, int mode);
82
83 void next();
84 bool at_end() { return _vfst.at_end(); }
85
86 Method* method() { return _vfst.method(); }
87 int bci() { return _vfst.bci(); }
88
89 void fill_frame(int index, objArrayHandle frames_array,
90 const methodHandle& method, TRAPS);
91 };
92
93 class LiveFrameStream : public BaseFrameStream {
94 private:
95 enum {
96 MODE_INTERPRETED = 0x01,
97 MODE_COMPILED = 0x02
98 };
99
100 javaVFrame* _jvf;
101
102 void fill_live_stackframe(Handle stackFrame, const methodHandle& method, TRAPS);
103 static oop create_primitive_slot_instance(StackValueCollection* values,
|