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 }
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 }
// Returns the length jushort length() const { return ushort_field(length_offset()); }
void set_length(int length) { int_field_put(length_offset(), length); }
// Returns the length jint length() const { return int_field(length_offset()); }