8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp jdk8u272-b06

Tue, 25 Aug 2020 13:30:02 +0200

author
rkennke
date
Tue, 25 Aug 2020 13:30:02 +0200
changeset 10000
4b0aa85a9565
parent 9999
34f5c1a4ba37
child 10001
4689eaf1a5c9

8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp
Reviewed-by: zgu, andrew

src/share/vm/compiler/disassembler.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/compiler/disassembler.cpp	Thu Aug 27 21:00:00 2020 -0300
     1.2 +++ b/src/share/vm/compiler/disassembler.cpp	Tue Aug 25 13:30:02 2020 +0200
     1.3 @@ -244,19 +244,25 @@
     1.4    const char* options() { return _option_buf; }
     1.5  };
     1.6  
     1.7 -decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c) {
     1.8 -  memset(this, 0, sizeof(*this)); // Beware, this zeroes bits of fields.
     1.9 -  _output = output ? output : tty;
    1.10 -  _code = code;
    1.11 -  if (code != NULL && code->is_nmethod())
    1.12 -    _nm = (nmethod*) code;
    1.13 +decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c) :
    1.14 +  _nm((code != NULL && code->is_nmethod()) ? (nmethod*)code : NULL),
    1.15 +  _code(code),
    1.16 +  _strings(),
    1.17 +  _output(output ? output : tty),
    1.18 +  _start(NULL),
    1.19 +  _end(NULL),
    1.20 +  _option_buf(),
    1.21 +  _print_raw(0),
    1.22 +  // by default, output pc but not bytes:
    1.23 +  _print_pc(true),
    1.24 +  _print_bytes(false),
    1.25 +  _cur_insn(NULL),
    1.26 +  _total_ticks(0),
    1.27 +  _bytes_per_line(Disassembler::pd_instruction_alignment())
    1.28 +{
    1.29 +  memset(_option_buf, 0, sizeof(_option_buf));
    1.30    _strings.copy(c);
    1.31  
    1.32 -  // by default, output pc but not bytes:
    1.33 -  _print_pc       = true;
    1.34 -  _print_bytes    = false;
    1.35 -  _bytes_per_line = Disassembler::pd_instruction_alignment();
    1.36 -
    1.37    // parse the global option string:
    1.38    collect_options(Disassembler::pd_cpu_opts());
    1.39    collect_options(PrintAssemblyOptions);

mercurial