8220341: Class redefinition fails with assert(!is_unloaded()) failed: unloaded method on the stack

Skip unloaded methods in compile queue during marking.

Reviewed-by: kvn, neliasso, eosterlund, coleenp
This commit is contained in:
Tobias Hartmann 2019-03-12 10:09:50 +01:00
parent 1dc7271eca
commit 474437061e

View File

@ -182,8 +182,10 @@ void CompileTask::set_code(nmethod* nm) {
}
void CompileTask::mark_on_stack() {
if (is_unloaded()) {
return;
}
// Mark these methods as something redefine classes cannot remove.
assert(!is_unloaded(), "unloaded method on the stack");
_method->set_on_stack(true);
if (_hot_method != NULL) {
_hot_method->set_on_stack(true);