Mercurial > hg > icedtea8-forest > hotspot
changeset 10786:4b0aa85a9565 jdk8u272-b06 jdk8u282-b00
8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp
Reviewed-by: zgu, andrew
author | rkennke |
---|---|
date | Tue, 25 Aug 2020 13:30:02 +0200 |
parents | 34f5c1a4ba37 |
children | 4689eaf1a5c9 |
files | src/share/vm/compiler/disassembler.cpp |
diffstat | 1 files changed, 17 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/compiler/disassembler.cpp Thu Aug 27 21:00:00 2020 -0300 +++ b/src/share/vm/compiler/disassembler.cpp Tue Aug 25 13:30:02 2020 +0200 @@ -244,19 +244,25 @@ const char* options() { return _option_buf; } }; -decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c) { - memset(this, 0, sizeof(*this)); // Beware, this zeroes bits of fields. - _output = output ? output : tty; - _code = code; - if (code != NULL && code->is_nmethod()) - _nm = (nmethod*) code; +decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c) : + _nm((code != NULL && code->is_nmethod()) ? (nmethod*)code : NULL), + _code(code), + _strings(), + _output(output ? output : tty), + _start(NULL), + _end(NULL), + _option_buf(), + _print_raw(0), + // by default, output pc but not bytes: + _print_pc(true), + _print_bytes(false), + _cur_insn(NULL), + _total_ticks(0), + _bytes_per_line(Disassembler::pd_instruction_alignment()) +{ + memset(_option_buf, 0, sizeof(_option_buf)); _strings.copy(c); - // by default, output pc but not bytes: - _print_pc = true; - _print_bytes = false; - _bytes_per_line = Disassembler::pd_instruction_alignment(); - // parse the global option string: collect_options(Disassembler::pd_cpu_opts()); collect_options(PrintAssemblyOptions);