diff src/share/vm/runtime/frame.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 1d7922586cf6
children e522a00b91aa d0aa87f04bd5 cd3d6a6b95d9
line wrap: on
line diff
--- a/src/share/vm/runtime/frame.hpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/share/vm/runtime/frame.hpp	Sat Sep 01 13:25:18 2012 -0400
@@ -26,7 +26,7 @@
 #define SHARE_VM_RUNTIME_FRAME_HPP
 
 #include "asm/assembler.hpp"
-#include "oops/methodOop.hpp"
+#include "oops/method.hpp"
 #include "runtime/basicLock.hpp"
 #include "runtime/monitorChunk.hpp"
 #include "runtime/registerMap.hpp"
@@ -197,7 +197,7 @@
 
   oop*      obj_at_addr(int offset) const        { return (oop*)     addr_at(offset); }
 
-  oop*      adjusted_obj_at_addr(methodOop method, int index) { return obj_at_addr(adjust_offset(method, index)); }
+  oop*      adjusted_obj_at_addr(Method* method, int index) { return obj_at_addr(adjust_offset(method, index)); }
 
  private:
   jint*    int_at_addr(int offset) const         { return (jint*)    addr_at(offset); }
@@ -343,10 +343,10 @@
 
  public:
   // Method & constant pool cache
-  methodOop interpreter_frame_method() const;
-  void interpreter_frame_set_method(methodOop method);
-  methodOop* interpreter_frame_method_addr() const;
-  constantPoolCacheOop* interpreter_frame_cache_addr() const;
+  Method* interpreter_frame_method() const;
+  void interpreter_frame_set_method(Method* method);
+  Method** interpreter_frame_method_addr() const;
+  ConstantPoolCache** interpreter_frame_cache_addr() const;
 #ifdef PPC
   oop* interpreter_frame_mirror_addr() const;
 #endif
@@ -422,12 +422,15 @@
   void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
   void oops_entry_do(OopClosure* f, const RegisterMap* map);
   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
-  int adjust_offset(methodOop method, int index); // helper for above fn
+  int adjust_offset(Method* method, int index); // helper for above fn
  public:
   // Memory management
   void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); }
   void nmethods_do(CodeBlobClosure* cf);
 
+  // RedefineClasses support for finding live interpreted methods on the stack
+  void metadata_do(void f(Metadata*));
+
   void gc_prologue();
   void gc_epilogue();
   void pd_gc_epilog();