--- old/src/share/vm/prims/jvmtiImpl.hpp Fri May 31 16:04:20 2013 +++ new/src/share/vm/prims/jvmtiImpl.hpp Fri May 31 16:04:19 2013 @@ -200,47 +200,6 @@ /////////////////////////////////////////////////////////////// // -// class VM_ChangeBreakpoints -// Used by : JvmtiBreakpoints -// Used by JVMTI methods: none directly. -// Note: A Helper class. -// -// VM_ChangeBreakpoints implements a VM_Operation for ALL modifications to the JvmtiBreakpoints class. -// - -class VM_ChangeBreakpoints : public VM_Operation { -private: - JvmtiBreakpoints* _breakpoints; - int _operation; - JvmtiBreakpoint* _bp; - -public: - enum { SET_BREAKPOINT=0, CLEAR_BREAKPOINT=1, CLEAR_ALL_BREAKPOINT=2 }; - - VM_ChangeBreakpoints(JvmtiBreakpoints* breakpoints, int operation) { - _breakpoints = breakpoints; - _bp = NULL; - _operation = operation; - assert(breakpoints != NULL, "breakpoints != NULL"); - assert(operation == CLEAR_ALL_BREAKPOINT, "unknown breakpoint operation"); - } - VM_ChangeBreakpoints(JvmtiBreakpoints* breakpoints, int operation, JvmtiBreakpoint *bp) { - _breakpoints = breakpoints; - _bp = bp; - _operation = operation; - assert(breakpoints != NULL, "breakpoints != NULL"); - assert(bp != NULL, "bp != NULL"); - assert(operation == SET_BREAKPOINT || operation == CLEAR_BREAKPOINT , "unknown breakpoint operation"); - } - - VMOp_Type type() const { return VMOp_ChangeBreakpoints; } - void doit(); - void oops_do(OopClosure* f); -}; - - -/////////////////////////////////////////////////////////////// -// // class JvmtiBreakpoints // Used by : JvmtiCurrentBreakpoints // Used by JVMTI methods: none directly @@ -267,7 +226,6 @@ friend class VM_ChangeBreakpoints; void set_at_safepoint(JvmtiBreakpoint& bp); void clear_at_safepoint(JvmtiBreakpoint& bp); - void clearall_at_safepoint(); static void do_element(GrowableElement *e); @@ -282,7 +240,6 @@ int set(JvmtiBreakpoint& bp); int clear(JvmtiBreakpoint& bp); void clearall_in_class_at_safepoint(klassOop klass); - void clearall(); void gc_epilogue(); }; @@ -340,7 +297,41 @@ return false; } + /////////////////////////////////////////////////////////////// +// +// class VM_ChangeBreakpoints +// Used by : JvmtiBreakpoints +// Used by JVMTI methods: none directly. +// Note: A Helper class. +// +// VM_ChangeBreakpoints implements a VM_Operation for ALL modifications to the JvmtiBreakpoints class. +// + +class VM_ChangeBreakpoints : public VM_Operation { +private: + JvmtiBreakpoints* _breakpoints; + int _operation; + JvmtiBreakpoint* _bp; + +public: + enum { SET_BREAKPOINT=0, CLEAR_BREAKPOINT=1 }; + + VM_ChangeBreakpoints(int operation, JvmtiBreakpoint *bp) { + JvmtiBreakpoints& current_bps = JvmtiCurrentBreakpoints::get_jvmti_breakpoints(); + _breakpoints = ¤t_bps; + _bp = bp; + _operation = operation; + assert(bp != NULL, "bp != NULL"); + } + + VMOp_Type type() const { return VMOp_ChangeBreakpoints; } + void doit(); + void oops_do(OopClosure* f); +}; + + +/////////////////////////////////////////////////////////////// // The get/set local operations must only be done by the VM thread // because the interpreter version needs to access oop maps, which can // only safely be done by the VM thread