115 void remove (int index); |
115 void remove (int index); |
116 // clear out all elements and release all heap space, notify listener |
116 // clear out all elements and release all heap space, notify listener |
117 void clear(); |
117 void clear(); |
118 // apply f to every element and update the cache |
118 // apply f to every element and update the cache |
119 void oops_do(OopClosure* f); |
119 void oops_do(OopClosure* f); |
|
120 // update the cache after a full gc |
|
121 void gc_epilogue(); |
120 }; |
122 }; |
121 |
123 |
122 |
124 |
123 /////////////////////////////////////////////////////////////// |
125 /////////////////////////////////////////////////////////////// |
124 // |
126 // |
146 int find(JvmtiBreakpoint& e) { return _cache.find((GrowableElement *) &e); } |
148 int find(JvmtiBreakpoint& e) { return _cache.find((GrowableElement *) &e); } |
147 void append(JvmtiBreakpoint& e) { _cache.append((GrowableElement *) &e); } |
149 void append(JvmtiBreakpoint& e) { _cache.append((GrowableElement *) &e); } |
148 void remove (int index) { _cache.remove(index); } |
150 void remove (int index) { _cache.remove(index); } |
149 void clear() { _cache.clear(); } |
151 void clear() { _cache.clear(); } |
150 void oops_do(OopClosure* f) { _cache.oops_do(f); } |
152 void oops_do(OopClosure* f) { _cache.oops_do(f); } |
|
153 void gc_epilogue() { _cache.gc_epilogue(); } |
151 }; |
154 }; |
152 |
155 |
153 |
156 |
154 /////////////////////////////////////////////////////////////// |
157 /////////////////////////////////////////////////////////////// |
155 // |
158 // |
323 |
327 |
324 // quickly test whether the bcp matches a cached breakpoint in the list |
328 // quickly test whether the bcp matches a cached breakpoint in the list |
325 static inline bool is_breakpoint(address bcp); |
329 static inline bool is_breakpoint(address bcp); |
326 |
330 |
327 static void oops_do(OopClosure* f); |
331 static void oops_do(OopClosure* f); |
|
332 static void gc_epilogue(); |
328 }; |
333 }; |
329 |
334 |
330 // quickly test whether the bcp matches a cached breakpoint in the list |
335 // quickly test whether the bcp matches a cached breakpoint in the list |
331 bool JvmtiCurrentBreakpoints::is_breakpoint(address bcp) { |
336 bool JvmtiCurrentBreakpoints::is_breakpoint(address bcp) { |
332 address *bps = get_breakpoint_list(); |
337 address *bps = get_breakpoint_list(); |