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