src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp
changeset 52431 b0af758a092c
parent 52141 de6dc206a92b
child 54669 ad45b3802d4e
equal deleted inserted replaced
52430:4ee78b5583f9 52431:b0af758a092c
    32 #include "memory/iterator.hpp"
    32 #include "memory/iterator.hpp"
    33 #include "oops/klass.hpp"
    33 #include "oops/klass.hpp"
    34 #include "oops/markOop.hpp"
    34 #include "oops/markOop.hpp"
    35 #include "oops/oop.hpp"
    35 #include "oops/oop.hpp"
    36 #include "prims/jvmtiThreadState.hpp"
    36 #include "prims/jvmtiThreadState.hpp"
    37 #include "prims/privilegedStack.hpp"
       
    38 #include "runtime/frame.inline.hpp"
    37 #include "runtime/frame.inline.hpp"
    39 #include "runtime/mutexLocker.hpp"
    38 #include "runtime/mutexLocker.hpp"
    40 #include "runtime/threadSMR.inline.hpp"
    39 #include "runtime/threadSMR.inline.hpp"
    41 #include "runtime/vframe_hp.hpp"
    40 #include "runtime/vframe_hp.hpp"
    42 #include "services/management.hpp"
    41 #include "services/management.hpp"
   321   assert(!complete(), "invariant");
   320   assert(!complete(), "invariant");
   322 
   321 
   323   ReferenceLocateClosure rcl(_callback, OldObjectRoot::_threads, OldObjectRoot::_stack_variable, jt);
   322   ReferenceLocateClosure rcl(_callback, OldObjectRoot::_threads, OldObjectRoot::_stack_variable, jt);
   324 
   323 
   325   if (jt->has_last_Java_frame()) {
   324   if (jt->has_last_Java_frame()) {
   326     PrivilegedElement* const pelem = jt->privileged_stack_top();
       
   327     if (pelem != NULL) {
       
   328       pelem->oops_do(&rcl);
       
   329       if (rcl.complete()) {
       
   330         return true;
       
   331       }
       
   332     }
       
   333 
       
   334     // traverse the registered growable array gc_array
   325     // traverse the registered growable array gc_array
   335     // can't do this as it is not reachable from outside
   326     // can't do this as it is not reachable from outside
   336 
   327 
   337     // Traverse the monitor chunks
   328     // Traverse the monitor chunks
   338     MonitorChunk* chunk = jt->monitor_chunks();
   329     MonitorChunk* chunk = jt->monitor_chunks();