165 // Fill in the StackFrameInfo at the given index in frames_array |
165 // Fill in the StackFrameInfo at the given index in frames_array |
166 void JavaFrameStream::fill_frame(int index, objArrayHandle frames_array, |
166 void JavaFrameStream::fill_frame(int index, objArrayHandle frames_array, |
167 const methodHandle& method, TRAPS) { |
167 const methodHandle& method, TRAPS) { |
168 if (_need_method_info) { |
168 if (_need_method_info) { |
169 Handle stackFrame(THREAD, frames_array->obj_at(index)); |
169 Handle stackFrame(THREAD, frames_array->obj_at(index)); |
170 fill_stackframe(stackFrame, method); |
170 fill_stackframe(stackFrame, method, CHECK); |
171 } else { |
171 } else { |
172 frames_array->obj_at_put(index, method->method_holder()->java_mirror()); |
172 frames_array->obj_at_put(index, method->method_holder()->java_mirror()); |
173 } |
173 } |
174 } |
174 } |
175 |
175 |
268 } |
268 } |
269 return array_h; |
269 return array_h; |
270 } |
270 } |
271 |
271 |
272 // Fill StackFrameInfo with declaringClass and bci and initialize memberName |
272 // Fill StackFrameInfo with declaringClass and bci and initialize memberName |
273 void BaseFrameStream::fill_stackframe(Handle stackFrame, const methodHandle& method) { |
273 void BaseFrameStream::fill_stackframe(Handle stackFrame, const methodHandle& method, TRAPS) { |
274 java_lang_StackFrameInfo::set_declaringClass(stackFrame(), method->method_holder()->java_mirror()); |
274 java_lang_StackFrameInfo::set_declaringClass(stackFrame(), method->method_holder()->java_mirror()); |
275 java_lang_StackFrameInfo::set_method_and_bci(stackFrame, method, bci()); |
275 java_lang_StackFrameInfo::set_method_and_bci(stackFrame, method, bci(), THREAD); |
276 } |
276 } |
277 |
277 |
278 // Fill LiveStackFrameInfo with locals, monitors, and expressions |
278 // Fill LiveStackFrameInfo with locals, monitors, and expressions |
279 void LiveFrameStream::fill_live_stackframe(Handle stackFrame, |
279 void LiveFrameStream::fill_live_stackframe(Handle stackFrame, |
280 const methodHandle& method, TRAPS) { |
280 const methodHandle& method, TRAPS) { |
281 fill_stackframe(stackFrame, method); |
281 fill_stackframe(stackFrame, method, CHECK); |
282 if (_jvf != NULL) { |
282 if (_jvf != NULL) { |
283 StackValueCollection* locals = _jvf->locals(); |
283 StackValueCollection* locals = _jvf->locals(); |
284 StackValueCollection* expressions = _jvf->expressions(); |
284 StackValueCollection* expressions = _jvf->expressions(); |
285 GrowableArray<MonitorInfo*>* monitors = _jvf->monitors(); |
285 GrowableArray<MonitorInfo*>* monitors = _jvf->monitors(); |
286 |
286 |