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