diff src/share/vm/prims/jvmtiImpl.hpp @ 2147:9afee0b9fc1d

7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220) Summary: Rebuild breakpoint cache at gc_epilogue instead of during oops_do Reviewed-by: dcubed, ysr, coleenp
author kamg
date Wed, 19 Jan 2011 13:51:53 -0800
parents 7246a374a9f2
children bf8517f4e4d0
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiImpl.hpp	Wed Jan 19 08:16:45 2011 -0800
+++ b/src/share/vm/prims/jvmtiImpl.hpp	Wed Jan 19 13:51:53 2011 -0800
@@ -117,6 +117,8 @@
   void clear();
   // apply f to every element and update the cache
   void oops_do(OopClosure* f);
+  // update the cache after a full gc
+  void gc_epilogue();
 };
 
 
@@ -148,6 +150,7 @@
   void remove (int index)               { _cache.remove(index); }
   void clear()                          { _cache.clear(); }
   void oops_do(OopClosure* f)           { _cache.oops_do(f); }
+  void gc_epilogue()                    { _cache.gc_epilogue(); }
 };
 
 
@@ -282,6 +285,7 @@
   int  clear(JvmtiBreakpoint& bp);
   void clearall_in_class_at_safepoint(klassOop klass);
   void clearall();
+  void gc_epilogue();
 };
 
 
@@ -325,6 +329,7 @@
   static inline bool is_breakpoint(address bcp);
 
   static void oops_do(OopClosure* f);
+  static void gc_epilogue();
 };
 
 // quickly test whether the bcp matches a cached breakpoint in the list