394
395 oop ShenandoahBarrierSet::storeval_barrier(oop obj) {
396 if (ShenandoahStoreValBarrier) {
397 return resolve_oop_static(obj);
398 }
399 return obj;
400 }
401
402 void ShenandoahBarrierSet::keep_alive_barrier(oop obj) {
403 if (ShenandoahKeepAliveBarrier) {
404 G1SATBCardTableModRefBS::enqueue(obj);
405 }
406 }
407
408 #ifdef ASSERT
409 void ShenandoahBarrierSet::verify_safe_oop(oop p) {
410 ShenandoahHeap* heap = ShenandoahHeap::heap();
411 if (p == NULL) return;
412 if (heap->in_collection_set(p) &&
413 ! heap->cancelled_concgc()) {
414 tty->print_cr("oop = "PTR_FORMAT", resolved: "PTR_FORMAT", marked-next %s, marked-complete: %s",
415 p2i(p),
416 p2i(read_barrier(p)),
417 BOOL_TO_STR(heap->is_marked_next(p)),
418 BOOL_TO_STR(heap->is_marked_complete(p)));
419 tty->print_cr("in_cset: %s", BOOL_TO_STR(heap->in_collection_set(p)));
420 heap->heap_region_containing((HeapWord*) p)->print();
421 tty->print_cr("top-at-mark-start: %p", heap->next_top_at_mark_start((HeapWord*) p));
422 tty->print_cr("top-at-prev-mark-start: %p", heap->complete_top_at_mark_start((HeapWord*) p));
423 tty->print_cr("marking: %s, evacuating: %s", BOOL_TO_STR(heap->concurrent_mark_in_progress()), BOOL_TO_STR(heap->is_evacuation_in_progress()));
424 assert(false, "We should have fixed this earlier");
425 }
426 }
427 #endif
|
394
395 oop ShenandoahBarrierSet::storeval_barrier(oop obj) {
396 if (ShenandoahStoreValBarrier) {
397 return resolve_oop_static(obj);
398 }
399 return obj;
400 }
401
402 void ShenandoahBarrierSet::keep_alive_barrier(oop obj) {
403 if (ShenandoahKeepAliveBarrier) {
404 G1SATBCardTableModRefBS::enqueue(obj);
405 }
406 }
407
408 #ifdef ASSERT
409 void ShenandoahBarrierSet::verify_safe_oop(oop p) {
410 ShenandoahHeap* heap = ShenandoahHeap::heap();
411 if (p == NULL) return;
412 if (heap->in_collection_set(p) &&
413 ! heap->cancelled_concgc()) {
414 tty->print_cr("oop = "PTR_FORMAT", resolved: "PTR_FORMAT", marked %s",
415 p2i(p),
416 p2i(read_barrier(p)),
417 BOOL_TO_STR(heap->is_marked(p)));
418 tty->print_cr("in_cset: %s", BOOL_TO_STR(heap->in_collection_set(p)));
419 heap->heap_region_containing((HeapWord*) p)->print();
420 tty->print_cr("top-at-mark-start: %p", heap->top_at_mark_start((HeapWord*) p));
421 tty->print_cr("marking: %s, evacuating: %s", BOOL_TO_STR(heap->concurrent_mark_in_progress()), BOOL_TO_STR(heap->is_evacuation_in_progress()));
422 assert(false, "We should have fixed this earlier");
423 }
424 }
425 #endif
|