src/hotspot/share/jvmci/jvmciEnv.hpp
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54812 f2d5f44d994e
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
    88 // into the code installation step.
    88 // into the code installation step.
    89 class JVMCICompileState : public ResourceObj {
    89 class JVMCICompileState : public ResourceObj {
    90   friend class JVMCIVMStructs;
    90   friend class JVMCIVMStructs;
    91  private:
    91  private:
    92   CompileTask*     _task;
    92   CompileTask*     _task;
    93   int              _system_dictionary_modification_counter;
       
    94 
    93 
    95   // Cache JVMTI state. Defined as bytes so that reading them from Java
    94   // Cache JVMTI state. Defined as bytes so that reading them from Java
    96   // via Unsafe is well defined (the C++ type for bool is implementation
    95   // via Unsafe is well defined (the C++ type for bool is implementation
    97   // defined and may not be the same as a Java boolean).
    96   // defined and may not be the same as a Java boolean).
       
    97   uint64_t _jvmti_redefinition_count;
    98   jbyte  _jvmti_can_hotswap_or_post_breakpoint;
    98   jbyte  _jvmti_can_hotswap_or_post_breakpoint;
    99   jbyte  _jvmti_can_access_local_variables;
    99   jbyte  _jvmti_can_access_local_variables;
   100   jbyte  _jvmti_can_post_on_exceptions;
   100   jbyte  _jvmti_can_post_on_exceptions;
   101   jbyte  _jvmti_can_pop_frame;
   101   jbyte  _jvmti_can_pop_frame;
   102 
   102 
   107   // Specifies if _failure_reason is on the C heap. If so, it is allocated
   107   // Specifies if _failure_reason is on the C heap. If so, it is allocated
   108   // with the mtJVMCI NMT flag.
   108   // with the mtJVMCI NMT flag.
   109   bool             _failure_reason_on_C_heap;
   109   bool             _failure_reason_on_C_heap;
   110 
   110 
   111  public:
   111  public:
   112   JVMCICompileState(CompileTask* task, int system_dictionary_modification_counter);
   112   JVMCICompileState(CompileTask* task);
   113 
   113 
   114   CompileTask* task() { return _task; }
   114   CompileTask* task() { return _task; }
   115 
   115 
   116   int system_dictionary_modification_counter() { return _system_dictionary_modification_counter; }
       
   117   bool  jvmti_state_changed() const;
   116   bool  jvmti_state_changed() const;
       
   117   uint64_t jvmti_redefinition_count() const          { return  _jvmti_redefinition_count; }
   118   bool  jvmti_can_hotswap_or_post_breakpoint() const { return  _jvmti_can_hotswap_or_post_breakpoint != 0; }
   118   bool  jvmti_can_hotswap_or_post_breakpoint() const { return  _jvmti_can_hotswap_or_post_breakpoint != 0; }
   119   bool  jvmti_can_access_local_variables() const     { return  _jvmti_can_access_local_variables != 0; }
   119   bool  jvmti_can_access_local_variables() const     { return  _jvmti_can_access_local_variables != 0; }
   120   bool  jvmti_can_post_on_exceptions() const         { return  _jvmti_can_post_on_exceptions != 0; }
   120   bool  jvmti_can_post_on_exceptions() const         { return  _jvmti_can_post_on_exceptions != 0; }
   121   bool  jvmti_can_pop_frame() const                  { return  _jvmti_can_pop_frame != 0; }
   121   bool  jvmti_can_pop_frame() const                  { return  _jvmti_can_pop_frame != 0; }
   122 
   122