hotspot/src/share/vm/memory/iterator.hpp
changeset 3913 e049e6b81e11
parent 3912 3aaaaad1ccb0
child 3919 b15d85d98b61
--- a/hotspot/src/share/vm/memory/iterator.hpp	Wed Sep 23 23:56:15 2009 -0700
+++ b/hotspot/src/share/vm/memory/iterator.hpp	Wed Sep 23 23:57:44 2009 -0700
@@ -25,6 +25,7 @@
 // The following classes are C++ `closures` for iterating over objects, roots and spaces
 
 class CodeBlob;
+class nmethod;
 class ReferenceProcessor;
 class DataLayout;
 
@@ -70,9 +71,6 @@
   virtual const bool should_remember_mdo() const { return false; }
   virtual void remember_mdo(DataLayout* v) { /* do nothing */ }
 
-  // If "true", invoke on nmethods (when scanning compiled frames).
-  virtual const bool do_nmethods() const { return false; }
-
   // The methods below control how object iterations invoking this closure
   // should be performed:
 
@@ -190,7 +188,7 @@
 class MarkingCodeBlobClosure : public CodeBlobClosure {
  public:
   // Called for each code blob, but at most once per unique blob.
-  virtual void do_newly_marked_nmethod(CodeBlob* cb) = 0;
+  virtual void do_newly_marked_nmethod(nmethod* nm) = 0;
 
   virtual void do_code_blob(CodeBlob* cb);
     // = { if (!nmethod(cb)->test_set_oops_do_mark())  do_newly_marked_nmethod(cb); }
@@ -213,7 +211,7 @@
   OopClosure* _cl;
   bool _do_marking;
 public:
-  virtual void do_newly_marked_nmethod(CodeBlob* cb);
+  virtual void do_newly_marked_nmethod(nmethod* cb);
     // = { cb->oops_do(_cl); }
   virtual void do_code_blob(CodeBlob* cb);
     // = { if (_do_marking)  super::do_code_blob(cb); else cb->oops_do(_cl); }