コード例 #1
0
void PrintObjectClosure::do_object(memOop obj) {
  this->obj = obj;
  obj->print_value();
  if (WizardMode) {
    st->print(" (size = %d)", obj->size());
  }
  st->cr();
}
コード例 #2
0
ファイル: rSet.cpp プロジェクト: jirkadanek/Strongtalk
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;
}
コード例 #3
0
ファイル: rSet.cpp プロジェクト: jirkadanek/Strongtalk
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();
  }
}