8198845: Missing resource mark results disassembling generated code failure in hs error report

Fixed secondary failure due to missing resource mark while disassembling nmethod

Reviewed-by: coleenp, stuefe, dholmes
This commit is contained in:
Zhengyu Gu 2018-03-04 20:57:46 -05:00
parent d1bd39385f
commit cbaf7f2f81

View File

@ -29,6 +29,7 @@
#include "compiler/disassembler.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "logging/logConfiguration.hpp"
#include "memory/resourceArea.hpp"
#include "prims/whitebox.hpp"
#include "runtime/arguments.hpp"
#include "runtime/atomic.hpp"
@ -773,7 +774,10 @@ void VMError::report(outputStream* st, bool _verbose) {
if (desc != NULL) {
desc->print_on(st);
Disassembler::decode(desc->begin(), desc->end(), st);
} else {
} else if (_thread != NULL) {
// Disassembling nmethod will incur resource memory allocation,
// only do so when thread is valid.
ResourceMark rm(_thread);
Disassembler::decode(cb, st);
st->cr();
}