Mercurial > hg > truffle
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();