Exemplo n.º 1
0
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++;
  }
}
Exemplo n.º 2
0
void WeakArrayRegister::check_and_scavenge_contents() {
  scavenge_check_for_dying_objects();
  scavenge_contents();
  during_registration = false;
  weakArrays = NULL;
}