src/share/vm/code/nmethod.hpp

changeset 1637
5f24d0319e54
parent 1636
24128c2ffa87
child 1639
18a389214829
     1.1 --- a/src/share/vm/code/nmethod.hpp	Fri Jan 29 08:33:24 2010 -0800
     1.2 +++ b/src/share/vm/code/nmethod.hpp	Fri Jan 29 09:27:22 2010 -0800
     1.3 @@ -95,6 +95,8 @@
     1.4    unsigned int has_unsafe_access:1;          // May fault due to unsafe access.
     1.5    unsigned int has_method_handle_invokes:1;  // Has this method MethodHandle invokes?
     1.6  
     1.7 +  unsigned int speculatively_disconnected:1; // Marked for potential unload
     1.8 +
     1.9    void clear();
    1.10  };
    1.11  
    1.12 @@ -137,6 +139,7 @@
    1.13    // To support simple linked-list chaining of nmethods:
    1.14    nmethod*  _osr_link;         // from instanceKlass::osr_nmethods_head
    1.15    nmethod*  _scavenge_root_link; // from CodeCache::scavenge_root_nmethods
    1.16 +  nmethod*  _saved_nmethod_link; // from CodeCache::speculatively_disconnect
    1.17  
    1.18    static nmethod* volatile _oops_do_mark_nmethods;
    1.19    nmethod*        volatile _oops_do_mark_link;
    1.20 @@ -413,6 +416,9 @@
    1.21    bool  has_method_handle_invokes() const         { return flags.has_method_handle_invokes; }
    1.22    void  set_has_method_handle_invokes(bool z)     { flags.has_method_handle_invokes = z; }
    1.23  
    1.24 +  bool  is_speculatively_disconnected() const     { return flags.speculatively_disconnected; }
    1.25 +  void  set_speculatively_disconnected(bool z)     { flags.speculatively_disconnected = z; }
    1.26 +
    1.27    int   level() const                             { return flags.level; }
    1.28    void  set_level(int newLevel)                   { check_safepoint(); flags.level = newLevel; }
    1.29  
    1.30 @@ -437,6 +443,9 @@
    1.31    nmethod* scavenge_root_link() const                  { return _scavenge_root_link; }
    1.32    void     set_scavenge_root_link(nmethod *n)          { _scavenge_root_link = n; }
    1.33  
    1.34 +  nmethod* saved_nmethod_link() const                  { return _saved_nmethod_link; }
    1.35 +  void     set_saved_nmethod_link(nmethod *n)          { _saved_nmethod_link = n; }
    1.36 +
    1.37   public:
    1.38  
    1.39    // Sweeper support

mercurial