예제 #1
0
bool rSet::is_object_dirty(memOop obj) {
  assert(!obj->is_new(), "just checking");
  char* current_byte = byte_for(obj->addr());
  char* end_byte     = byte_for(obj->addr() + obj->size());
  while (current_byte <= end_byte) {
    if (*current_byte == 0) return true;
    current_byte++;
  }
  return false;
}
예제 #2
0
void rSet::print_set_for_object(memOop obj) {
  std->print("Remember set for 0x%lx ", obj);
  obj->print_value();
  std->cr();
  if (obj->is_new()) {
    std->print_cr(" object is in new space!");
  } else {
    std->sp();
    char* current_byte = byte_for(obj->addr());
    char* end_byte     = byte_for(obj->addr() + obj->size());
    while (current_byte <= end_byte) {
      if (*current_byte) {
        std->print("_");
      } else {
        std->print("*");
      }
      current_byte++;
    }
    std->cr();
  }
}