Mercurial > hg > truffle
diff src/share/vm/runtime/frame.hpp @ 989:148e5441d916
6863023: need non-perm oops in code cache for JSR 292
Summary: Make a special root-list for those few nmethods which might contain non-perm oops.
Reviewed-by: twisti, kvn, never, jmasa, ysr
author | jrose |
---|---|
date | Tue, 15 Sep 2009 21:53:47 -0700 |
parents | bd02caa94611 |
children | dd57230ba8fe |
line wrap: on
line diff
--- a/src/share/vm/runtime/frame.hpp Tue Sep 15 11:09:34 2009 -0700 +++ b/src/share/vm/runtime/frame.hpp Tue Sep 15 21:53:47 2009 -0700 @@ -384,16 +384,14 @@ void oops_interpreted_arguments_do(symbolHandle signature, bool is_static, OopClosure* f); // Iteration of oops - void oops_do_internal(OopClosure* f, RegisterMap* map, bool use_interpreter_oop_map_cache); + 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, 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 - // Iteration of nmethods - void nmethods_code_blob_do(); public: // Memory management - void oops_do(OopClosure* f, RegisterMap* map) { oops_do_internal(f, map, true); } - void nmethods_do(); + void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); } + void nmethods_do(CodeBlobClosure* cf); void gc_prologue(); void gc_epilogue();