6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify

Reviewed-by: kvn, iveresov
This commit is contained in:
Tom Rodriguez 2011-05-16 22:16:44 -07:00
parent 0e10a5ad61
commit a16e057c0a
5 changed files with 160 additions and 2 deletions

View file

@ -2942,12 +2942,22 @@ CompilerThread::CompilerThread(CompileQueue* queue, CompilerCounters* counters)
_queue = queue;
_counters = counters;
_buffer_blob = NULL;
_scanned_nmethod = NULL;
#ifndef PRODUCT
_ideal_graph_printer = NULL;
#endif
}
void CompilerThread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
JavaThread::oops_do(f, cf);
if (_scanned_nmethod != NULL && cf != NULL) {
// Safepoints can occur when the sweeper is scanning an nmethod so
// process it here to make sure it isn't unloaded in the middle of
// a scan.
cf->do_code_blob(_scanned_nmethod);
}
}
// ======= Threads ========