hotspot/src/share/vm/runtime/vframe.hpp
changeset 34280 72bfaaffee36
parent 34273 8598d07915d9
child 35542 9dccb7f9f656
equal deleted inserted replaced
34277:d457b9400c99 34280:72bfaaffee36
   315   Method* method() const { return _method; }
   315   Method* method() const { return _method; }
   316   int bci() const { return _bci; }
   316   int bci() const { return _bci; }
   317   intptr_t* frame_id() const { return _frame.id(); }
   317   intptr_t* frame_id() const { return _frame.id(); }
   318   address frame_pc() const { return _frame.pc(); }
   318   address frame_pc() const { return _frame.pc(); }
   319 
   319 
       
   320   javaVFrame* java_frame() {
       
   321     vframe* vf = vframe::new_vframe(&_frame, &_reg_map, _thread);
       
   322     if (vf->is_java_frame()) {
       
   323       return (javaVFrame*)vf;
       
   324     }
       
   325     return NULL;
       
   326   }
       
   327 
   320   CodeBlob*          cb()         const { return _frame.cb();  }
   328   CodeBlob*          cb()         const { return _frame.cb();  }
   321   nmethod*           nm()         const {
   329   nmethod*           nm()         const {
   322       assert( cb() != NULL && cb()->is_nmethod(), "usage");
   330     assert( cb() != NULL && cb()->is_nmethod(), "usage");
   323       return (nmethod*) cb();
   331     return (nmethod*) cb();
   324   }
   332   }
   325 
   333 
   326   // Frame type
   334   // Frame type
   327   bool is_interpreted_frame() const { return _frame.is_interpreted_frame(); }
   335   bool is_interpreted_frame() const { return _frame.is_interpreted_frame(); }
   328   bool is_entry_frame() const       { return _frame.is_entry_frame(); }
   336   bool is_entry_frame() const       { return _frame.is_entry_frame(); }