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() {