void rSet::scavenge_contents(oldSpace* sp) { char* current_byte = byte_for(sp->bottom()); char* end_byte = byte_for(sp->top()); // set sentinel for scan (dirty page) *(end_byte + 1) = 0; // scan over clean pages while (*current_byte) current_byte++; while (current_byte <= end_byte) { // Pass the dirty page on to scavenge_contents current_byte = scavenge_contents(sp, current_byte, end_byte); // scan over clean pages while (*current_byte) current_byte++; } }
void WeakArrayRegister::check_and_scavenge_contents() { scavenge_check_for_dying_objects(); scavenge_contents(); during_registration = false; weakArrays = NULL; }