1.1 --- a/src/share/vm/memory/iterator.hpp Wed Sep 23 23:56:15 2009 -0700 1.2 +++ b/src/share/vm/memory/iterator.hpp Wed Sep 23 23:57:44 2009 -0700 1.3 @@ -25,6 +25,7 @@ 1.4 // The following classes are C++ `closures` for iterating over objects, roots and spaces 1.5 1.6 class CodeBlob; 1.7 +class nmethod; 1.8 class ReferenceProcessor; 1.9 class DataLayout; 1.10 1.11 @@ -70,9 +71,6 @@ 1.12 virtual const bool should_remember_mdo() const { return false; } 1.13 virtual void remember_mdo(DataLayout* v) { /* do nothing */ } 1.14 1.15 - // If "true", invoke on nmethods (when scanning compiled frames). 1.16 - virtual const bool do_nmethods() const { return false; } 1.17 - 1.18 // The methods below control how object iterations invoking this closure 1.19 // should be performed: 1.20 1.21 @@ -190,7 +188,7 @@ 1.22 class MarkingCodeBlobClosure : public CodeBlobClosure { 1.23 public: 1.24 // Called for each code blob, but at most once per unique blob. 1.25 - virtual void do_newly_marked_nmethod(CodeBlob* cb) = 0; 1.26 + virtual void do_newly_marked_nmethod(nmethod* nm) = 0; 1.27 1.28 virtual void do_code_blob(CodeBlob* cb); 1.29 // = { if (!nmethod(cb)->test_set_oops_do_mark()) do_newly_marked_nmethod(cb); } 1.30 @@ -213,7 +211,7 @@ 1.31 OopClosure* _cl; 1.32 bool _do_marking; 1.33 public: 1.34 - virtual void do_newly_marked_nmethod(CodeBlob* cb); 1.35 + virtual void do_newly_marked_nmethod(nmethod* cb); 1.36 // = { cb->oops_do(_cl); } 1.37 virtual void do_code_blob(CodeBlob* cb); 1.38 // = { if (_do_marking) super::do_code_blob(cb); else cb->oops_do(_cl); }