Mercurial > hg > truffle
diff src/share/vm/classfile/metadataOnStackMark.cpp @ 13038:910026b800b8
8026946: JvmtiEnv::SetBreakpoint and JvmtiEnv::ClearBreakpoint should use MethodHandle
8026948: JvmtiEnv::SetBreakpoint and JvmtiEnv::ClearBreakpoint might not work with anonymous classes
Summary: Walk methods in breakpoints for marking on stack so they aren't deallocated by redefine classes. Use class_holder rather than class_loader to keep GC from reclaiming class owning the method.
Reviewed-by: sspitsyn, ehelin, sla
author | coleenp |
---|---|
date | Fri, 01 Nov 2013 10:32:36 -0400 |
parents | 5daaddd917a1 |
children | 0b9ea9a72436 |
line wrap: on
line diff
--- a/src/share/vm/classfile/metadataOnStackMark.cpp Thu Oct 31 14:11:02 2013 -0400 +++ b/src/share/vm/classfile/metadataOnStackMark.cpp Fri Nov 01 10:32:36 2013 -0400 @@ -27,6 +27,7 @@ #include "code/codeCache.hpp" #include "compiler/compileBroker.hpp" #include "oops/metadata.hpp" +#include "prims/jvmtiImpl.hpp" #include "runtime/synchronizer.hpp" #include "runtime/thread.hpp" #include "utilities/growableArray.hpp" @@ -48,6 +49,7 @@ Threads::metadata_do(Metadata::mark_on_stack); CodeCache::alive_nmethods_do(nmethod::mark_on_stack); CompileBroker::mark_on_stack(); + JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); } MetadataOnStackMark::~MetadataOnStackMark() {