hotspot/src/share/vm/prims/stackwalk.cpp
changeset 46505 fd4bc78630b1
parent 46329 53ccc37bda19
child 46701 f559541c0daa
equal deleted inserted replaced
46504:38048d4d20e7 46505:fd4bc78630b1
   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