278 MonitorChunk* chunk = jt->monitor_chunks();
279 for (; chunk != NULL; chunk = chunk->next()) {
280 chunk->oops_do(&rcl);
281 }
282
283 if (rcl.complete()) {
284 return true;
285 }
286
287 // Traverse the execution stack
288 for (StackFrameStream fst(jt); !fst.is_done(); fst.next()) {
289 fst.current()->oops_do(&rcl, NULL, fst.register_map());
290 }
291
292 } // last java frame
293
294 if (rcl.complete()) {
295 return true;
296 }
297
298 GrowableArray<jvmtiDeferredLocalVariableSet*>* const list = jt->deferred_locals();
299 if (list != NULL) {
300 for (int i = 0; i < list->length(); i++) {
301 list->at(i)->oops_do(&rcl);
302 }
303 }
304
305 if (rcl.complete()) {
306 return true;
307 }
308
309 // Traverse instance variables at the end since the GC may be moving things
310 // around using this function
311 /*
312 * // can't reach these oop* from the outside
313 f->do_oop((oop*) &_threadObj);
314 f->do_oop((oop*) &_vm_result);
315 f->do_oop((oop*) &_exception_oop);
316 f->do_oop((oop*) &_pending_async_exception);
317 */
318
|
278 MonitorChunk* chunk = jt->monitor_chunks();
279 for (; chunk != NULL; chunk = chunk->next()) {
280 chunk->oops_do(&rcl);
281 }
282
283 if (rcl.complete()) {
284 return true;
285 }
286
287 // Traverse the execution stack
288 for (StackFrameStream fst(jt); !fst.is_done(); fst.next()) {
289 fst.current()->oops_do(&rcl, NULL, fst.register_map());
290 }
291
292 } // last java frame
293
294 if (rcl.complete()) {
295 return true;
296 }
297
298 GrowableArray<jvmtiDeferredLocalVariableSet*>* const list = JvmtiDeferredUpdates::deferred_locals(jt);
299 if (list != NULL) {
300 for (int i = 0; i < list->length(); i++) {
301 list->at(i)->oops_do(&rcl);
302 }
303 }
304
305 if (rcl.complete()) {
306 return true;
307 }
308
309 // Traverse instance variables at the end since the GC may be moving things
310 // around using this function
311 /*
312 * // can't reach these oop* from the outside
313 f->do_oop((oop*) &_threadObj);
314 f->do_oop((oop*) &_vm_result);
315 f->do_oop((oop*) &_exception_oop);
316 f->do_oop((oop*) &_pending_async_exception);
317 */
318
|