src/share/vm/compiler/disassembler.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/compiler/disassembler.hpp
src/share/vm/compiler/disassembler.hpp
Print this page
rev 10077 : 8148696: Race loading hsdis may cause SIGSEGV
Summary: Guard library loading with a lock
Reviewed-by:
*** 57,67 ****
// bailout
static bool _tried_to_load_library;
// points to the decode function.
static decode_func_virtual _decode_instructions_virtual;
static decode_func _decode_instructions;
! // tries to load library and return whether it succedded.
static bool load_library();
// Machine dependent stuff
#ifdef TARGET_ARCH_x86
# include "disassembler_x86.hpp"
--- 57,67 ----
// bailout
static bool _tried_to_load_library;
// points to the decode function.
static decode_func_virtual _decode_instructions_virtual;
static decode_func _decode_instructions;
! // tries to load library and return whether it succeeded.
static bool load_library();
// Machine dependent stuff
#ifdef TARGET_ARCH_x86
# include "disassembler_x86.hpp"
*** 82,96 ****
# include "disassembler_aarch64.hpp"
#endif
public:
! static bool can_decode() {
! return (_decode_instructions_virtual != NULL) ||
! (_decode_instructions != NULL) ||
! load_library();
! }
static void decode(CodeBlob *cb, outputStream* st = NULL);
static void decode(nmethod* nm, outputStream* st = NULL);
static void decode(address begin, address end, outputStream* st = NULL, CodeStrings c = CodeStrings());
};
--- 82,92 ----
# include "disassembler_aarch64.hpp"
#endif
public:
! static bool can_decode();
static void decode(CodeBlob *cb, outputStream* st = NULL);
static void decode(nmethod* nm, outputStream* st = NULL);
static void decode(address begin, address end, outputStream* st = NULL, CodeStrings c = CodeStrings());
};
src/share/vm/compiler/disassembler.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File