int compiledICHolderKlass::oop_adjust_pointers(oop obj) { assert(obj->is_compiledICHolder(), "must be compiledICHolder"); compiledICHolderOop c = compiledICHolderOop(obj); // Get size before changing pointers. // Don't call size() or oop_size() since that is a virtual call. int size = c->object_size(); MarkSweep::adjust_pointer(c->adr_holder_method()); MarkSweep::adjust_pointer(c->adr_holder_klass()); obj->adjust_header(); return size; }
int methodDataKlass::oop_adjust_pointers(oop obj) { assert(obj->is_methodData(), "should be method data"); methodDataOop m = methodDataOop(obj); // Get size before changing pointers // Don't call size() or oop_size() since that is a virtual call. int size = m->object_size(); obj->adjust_header(); MarkSweep::adjust_pointer(m->adr_method()); ResourceMark rm; ProfileData* data; for (data = m->first_data(); m->is_valid(data); data = m->next_data(data)) { data->adjust_pointers(); } return size; }
int klassKlass::oop_adjust_pointers(oop obj) { // Get size before changing pointers int size = oop_size(obj); obj->adjust_header(); Klass* k = Klass::cast(klassOop(obj)); MarkSweep::adjust_pointer(k->adr_super()); for (juint i = 0; i < Klass::primary_super_limit(); i++) MarkSweep::adjust_pointer(k->adr_primary_supers()+i); MarkSweep::adjust_pointer(k->adr_secondary_super_cache()); MarkSweep::adjust_pointer(k->adr_secondary_supers()); MarkSweep::adjust_pointer(k->adr_java_mirror()); MarkSweep::adjust_pointer(k->adr_name()); MarkSweep::adjust_pointer(k->adr_subklass()); MarkSweep::adjust_pointer(k->adr_next_sibling()); return size; }