< prev index next >

src/hotspot/share/runtime/stackChunkFrameStream.inline.hpp

Print this page
*** 193,13 ***
    assert(cb()->as_nmethod()->method() != nullptr, "");
    return (cb()->as_nmethod()->num_stack_arg_slots() * VMRegImpl::stack_slot_size) >> LogBytesPerWord;
  }
  
  template <ChunkFrames frame_kind>
! inline int StackChunkFrameStream<frame_kind>::num_oops() const {
    if (is_interpreted()) {
!     return interpreter_frame_num_oops();
    } else if (is_compiled()) {
      return oopmap()->num_oops();
    } else {
      assert(is_stub(), "invariant");
      return 0;
--- 193,14 ---
    assert(cb()->as_nmethod()->method() != nullptr, "");
    return (cb()->as_nmethod()->num_stack_arg_slots() * VMRegImpl::stack_slot_size) >> LogBytesPerWord;
  }
  
  template <ChunkFrames frame_kind>
! template <typename RegisterMapT>
+ inline int StackChunkFrameStream<frame_kind>::num_oops(RegisterMapT* map) const {
    if (is_interpreted()) {
!     return interpreter_frame_num_oops(map);
    } else if (is_compiled()) {
      return oopmap()->num_oops();
    } else {
      assert(is_stub(), "invariant");
      return 0;

*** 363,11 ***
  template <ChunkFrames frame_kind>
  template <class OopClosureType, class RegisterMapT>
  inline void StackChunkFrameStream<frame_kind>::iterate_oops(OopClosureType* closure, const RegisterMapT* map) const {
    if (is_interpreted()) {
      frame f = to_frame();
!     f.oops_interpreted_do(closure, nullptr, true);
    } else {
      DEBUG_ONLY(int oops = 0;)
      for (OopMapStream oms(oopmap()); !oms.is_done(); oms.next()) {
        OopMapValue omv = oms.current();
        if (omv.type() != OopMapValue::oop_value && omv.type() != OopMapValue::narrowoop_value) {
--- 364,11 ---
  template <ChunkFrames frame_kind>
  template <class OopClosureType, class RegisterMapT>
  inline void StackChunkFrameStream<frame_kind>::iterate_oops(OopClosureType* closure, const RegisterMapT* map) const {
    if (is_interpreted()) {
      frame f = to_frame();
!     f.oops_interpreted_do(closure, map, true);
    } else {
      DEBUG_ONLY(int oops = 0;)
      for (OopMapStream oms(oopmap()); !oms.is_done(); oms.next()) {
        OopMapValue omv = oms.current();
        if (omv.type() != OopMapValue::oop_value && omv.type() != OopMapValue::narrowoop_value) {
< prev index next >