8259937: guarantee(loc != NULL) failed: missing saved register with native invoker

Reviewed-by: kvn, jvernee, vlivanov
This commit is contained in:
Roland Westrelin 2021-03-01 15:11:25 +00:00
parent c569f1d64b
commit 6baecf39d5
28 changed files with 384 additions and 182 deletions

View file

@ -502,7 +502,7 @@ nmethod* nmethod::new_nmethod(const methodHandle& method,
ImplicitExceptionTable* nul_chk_table,
AbstractCompiler* compiler,
int comp_level,
const GrowableArrayView<BufferBlob*>& native_invokers
const GrowableArrayView<RuntimeStub*>& native_invokers
#if INCLUDE_JVMCI
, char* speculations,
int speculations_len,
@ -727,7 +727,7 @@ nmethod::nmethod(
ImplicitExceptionTable* nul_chk_table,
AbstractCompiler* compiler,
int comp_level,
const GrowableArrayView<BufferBlob*>& native_invokers
const GrowableArrayView<RuntimeStub*>& native_invokers
#if INCLUDE_JVMCI
, char* speculations,
int speculations_len,
@ -1058,7 +1058,7 @@ void nmethod::copy_values(GrowableArray<Metadata*>* array) {
}
void nmethod::free_native_invokers() {
for (BufferBlob** it = native_invokers_begin(); it < native_invokers_end(); it++) {
for (RuntimeStub** it = native_invokers_begin(); it < native_invokers_end(); it++) {
CodeCache::free(*it);
}
}
@ -2697,7 +2697,7 @@ void nmethod::print_pcs_on(outputStream* st) {
void nmethod::print_native_invokers() {
ResourceMark m; // in case methods get printed via debugger
tty->print_cr("Native invokers:");
for (BufferBlob** itt = native_invokers_begin(); itt < native_invokers_end(); itt++) {
for (RuntimeStub** itt = native_invokers_begin(); itt < native_invokers_end(); itt++) {
(*itt)->print_on(tty);
}
}