mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-20 23:36:18 +00:00
Merge
This commit is contained in:
commit
83b5203953
@ -1794,6 +1794,19 @@ void nmethod::metadata_do(void f(Metadata*)) {
|
||||
Metadata* md = r->metadata_value();
|
||||
f(md);
|
||||
}
|
||||
} else if (iter.type() == relocInfo::virtual_call_type) {
|
||||
// Check compiledIC holders associated with this nmethod
|
||||
CompiledIC *ic = CompiledIC_at(iter.reloc());
|
||||
if (ic->is_icholder_call()) {
|
||||
CompiledICHolder* cichk = ic->cached_icholder();
|
||||
f(cichk->holder_method());
|
||||
f(cichk->holder_klass());
|
||||
} else {
|
||||
Metadata* ic_oop = ic->cached_metadata();
|
||||
if (ic_oop != NULL) {
|
||||
f(ic_oop);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1804,6 +1817,7 @@ void nmethod::metadata_do(void f(Metadata*)) {
|
||||
Metadata* md = *p;
|
||||
f(md);
|
||||
}
|
||||
|
||||
// Call function Method*, not embedded in these other places.
|
||||
if (_method != NULL) f(_method);
|
||||
}
|
||||
|
||||
@ -3366,6 +3366,10 @@ void VM_RedefineClasses::redefine_single_class(jclass the_jclass,
|
||||
}
|
||||
#endif
|
||||
|
||||
// NULL out in scratch class to not delete twice. The class to be redefined
|
||||
// always owns these bytes.
|
||||
scratch_class->set_cached_class_file(NULL, 0);
|
||||
|
||||
// Replace inner_classes
|
||||
Array<u2>* old_inner_classes = the_class->inner_classes();
|
||||
the_class->set_inner_classes(scratch_class->inner_classes());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user