# HG changeset patch # User rkennke # Date 1598355002 -7200 # Node ID 4b0aa85a95653f44cc45f2ec0571153017ebbf03 # Parent 34f5c1a4ba37a9567ccde7e1894eb43c00c5f6c6 8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp Reviewed-by: zgu, andrew diff -r 34f5c1a4ba37 -r 4b0aa85a9565 src/share/vm/compiler/disassembler.cpp --- 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);