< prev index next >

src/hotspot/share/prims/jvmtiEnvThreadState.hpp

Print this page
*** 26,10 ***
--- 26,11 ---
  #define SHARE_PRIMS_JVMTIENVTHREADSTATE_HPP
  
  #include "jvmtifiles/jvmti.h"
  #include "memory/allocation.hpp"
  #include "oops/instanceKlass.hpp"
+ #include "prims/jvmtiThreadState.hpp"
  #include "prims/jvmtiEventController.hpp"
  #include "utilities/globalDefinitions.hpp"
  #include "utilities/growableArray.hpp"
  
  class JvmtiEnv;

*** 107,11 ***
  //    events due to instruction rewriting.
  
  class JvmtiEnvThreadState : public CHeapObj<mtInternal> {
  private:
    friend class JvmtiEnv;
!   JavaThread        *_thread;
    JvmtiEnv          *_env;
    JvmtiEnvThreadState *_next;
    jmethodID         _current_method_id;
    int               _current_bci;
    bool              _breakpoint_posted;
--- 108,11 ---
  //    events due to instruction rewriting.
  
  class JvmtiEnvThreadState : public CHeapObj<mtInternal> {
  private:
    friend class JvmtiEnv;
!   JvmtiThreadState  *_state;
    JvmtiEnv          *_env;
    JvmtiEnvThreadState *_next;
    jmethodID         _current_method_id;
    int               _current_bci;
    bool              _breakpoint_posted;

*** 133,19 ***
  
    friend class JvmtiThreadState;
    void set_next(JvmtiEnvThreadState* link) { _next = link; }
  
  public:
!   JvmtiEnvThreadState(JavaThread *thread, JvmtiEnvBase *env);
    ~JvmtiEnvThreadState();
  
    bool is_enabled(jvmtiEvent event_type) { return _event_enable.is_enabled(event_type); }
  
    JvmtiEnvThreadEventEnable *event_enable() { return &_event_enable; }
-   void *get_agent_thread_local_storage_data() { return _agent_thread_local_storage_data; }
-   void set_agent_thread_local_storage_data (void *data) { _agent_thread_local_storage_data = data; }
  
  
    // If the thread is in the given method at the given
    // location just return.  Otherwise, reset the current location
    // and reset _breakpoint_posted and _single_stepping_posted.
    // _breakpoint_posted and _single_stepping_posted are only cleared
--- 134,19 ---
  
    friend class JvmtiThreadState;
    void set_next(JvmtiEnvThreadState* link) { _next = link; }
  
  public:
!   JvmtiEnvThreadState(JvmtiThreadState* state, JvmtiEnvBase *env);
    ~JvmtiEnvThreadState();
  
    bool is_enabled(jvmtiEvent event_type) { return _event_enable.is_enabled(event_type); }
  
    JvmtiEnvThreadEventEnable *event_enable() { return &_event_enable; }
  
+   void *get_agent_thread_local_storage_data(); 
+   void set_agent_thread_local_storage_data (void *data);
  
    // If the thread is in the given method at the given
    // location just return.  Otherwise, reset the current location
    // and reset _breakpoint_posted and _single_stepping_posted.
    // _breakpoint_posted and _single_stepping_posted are only cleared

*** 162,12 ***
    }
    inline bool breakpoint_posted() { return _breakpoint_posted; }
    inline bool single_stepping_posted() {
      return _single_stepping_posted;
    }
  
!   inline JavaThread *get_thread() { return _thread; }
    inline JvmtiEnv *get_env() { return _env; }
  
    // lazily initialize _frame_pops
    JvmtiFramePops* get_frame_pops();
  
--- 163,17 ---
    }
    inline bool breakpoint_posted() { return _breakpoint_posted; }
    inline bool single_stepping_posted() {
      return _single_stepping_posted;
    }
+   bool is_virtual(); 
  
!   inline JvmtiThreadState* jvmti_thread_state() { return _state; }
+ 
+   // use _thread_saved if cthread is detached from JavaThread
+   JavaThread *get_thread_or_saved();
+   JavaThread *get_thread();
    inline JvmtiEnv *get_env() { return _env; }
  
    // lazily initialize _frame_pops
    JvmtiFramePops* get_frame_pops();
  
< prev index next >