Ejemplo n.º 1
0
void EntryActivation::iterate(OopVisitor* visitor) {
#if USE_OOP_VISITOR
  Oop::iterate(visitor);
  { 
    NamedField id("length", true);
    visitor->do_int(&id, length_offset(), true);
  }
  { 
    NamedField id("method", true);
    visitor->do_oop(&id, method_offset(), true);
  }
  { 
    NamedField id("next", true);
    visitor->do_oop(&id, next_offset(), true);
  }
#if ENABLE_REFLECTION
  { 
    NamedField id("return_point", true);
    id.set_hex_output(true);
    id.set_is_pointer(true);
    visitor->do_uint(&id, return_point_offset(), true);
  }
#endif
  for (int index = 0; index < length(); index++) {
    IndexableField id(index, true);
    // visitor->do_int(&id, tag_offset(index), true);
    switch(tag_at(index)) { 
      case float_tag: visitor->do_float(&id, value_offset(index), true); break;
      case obj_tag:   visitor->do_oop(&id, value_offset(index), true); break;
      default:        visitor->do_int(&id, value_offset(index), true); break;
    }
  }
#endif
}
Ejemplo n.º 2
0
void ObjArray::iterate(OopVisitor* visitor) {
#if USE_OOP_VISITOR
  Oop::iterate(visitor);

  NamedField field("length", true);
  visitor->do_uint(&field, length_offset(), true);

  for (int index = 0; index < length(); index++) {
    IndexableField field(index, true);
    visitor->do_oop(&field, offset_from_index(index), true);
  }
#endif
}
Ejemplo n.º 3
0
 // Returns the length
 jushort length() const {
   return ushort_field(length_offset());
 }
Ejemplo n.º 4
0
 void set_length(int length) {
   int_field_put(length_offset(), length);
 }
Ejemplo n.º 5
0
 // Returns the length
 jint length() const { return int_field(length_offset()); }