void ClassInfo::iterate(OopVisitor* visitor) { #if USE_OOP_VISITOR Oop::iterate(visitor); { NamedField id("object_size", true); visitor->do_ushort(&id, object_size_offset(), true); } { NamedField id("vtable_length", true); visitor->do_ushort(&id, vtable_length_offset(), true); } { NamedField id("itable_length", true); visitor->do_ushort(&id, itable_length_offset(), true); } { NamedField id("class_id", true); visitor->do_ushort(&id, class_id_offset(), true); } { NamedField id("name", true); visitor->do_oop(&id, name_offset(), true); } { char buff[1024]; access_flags().print_to_buffer(buff, AccessFlags::CLASS_FLAGS); visitor->do_comment(buff); NamedField id("access_flags", true); id.set_hex_output(true); visitor->do_uint(&id, access_flags_offset(), true); } if (is_array()) { { NamedField id("type", true); visitor->do_int(&id, type_offset(), true); } { NamedField id("scale", true); visitor->do_int(&id, scale_offset(), true); } } else { { NamedField id("methods", true); visitor->do_oop(&id, methods_offset(), true); } { NamedField id("fields", true); visitor->do_oop(&id, fields_offset(), true); } { NamedField id("local_interfaces", true); visitor->do_oop(&id, local_interfaces_offset(), true); } #if ENABLE_REFLECTION { NamedField id("inner_classes", true); visitor->do_oop(&id, inner_classes_offset(), true); } #endif { NamedField id("constants", true); visitor->do_oop(&id, constants_offset(), true); } } iterate_tables(visitor); #endif }
void set_object_size(jint value) { int_field_put(object_size_offset(), value); }
// used by romizer int itable_end_offset() const { return ushort_field(object_size_offset()); }
int object_size() { return int_field(object_size_offset()); }