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