--- a/hotspot/src/share/vm/runtime/frame.hpp Fri Aug 31 16:39:35 2012 -0700
+++ b/hotspot/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();