mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
7032407: Crash in LinkResolver::runtime_resolve_virtual_method()
Make CDS reorder vtables so that dump time vtables match run time order, so when redefine classes reinitializes them, they aren't in the wrong order. Reviewed-by: dcubed, acorn
This commit is contained in:
parent
2a5436b3d3
commit
8acea1848a
7 changed files with 75 additions and 13 deletions
|
@ -645,6 +645,15 @@ void klassVtable::adjust_method_entries(methodOop* old_methods, methodOop* new_m
|
|||
}
|
||||
}
|
||||
|
||||
// CDS/RedefineClasses support - clear vtables so they can be reinitialized
|
||||
void klassVtable::clear_vtable() {
|
||||
for (int i = 0; i < _length; i++) table()[i].clear();
|
||||
}
|
||||
|
||||
bool klassVtable::is_initialized() {
|
||||
return _length == 0 || table()[0].method() != NULL;
|
||||
}
|
||||
|
||||
|
||||
// Garbage collection
|
||||
void klassVtable::oop_follow_contents() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue