src/share/vm/compiler/oopMap.cpp

changeset 8892
96e9e479ff8a
parent 6940
6ad19ab94176
child 9041
95a08233f46c
     1.1 --- a/src/share/vm/compiler/oopMap.cpp	Wed Aug 23 04:07:36 2017 -0400
     1.2 +++ b/src/share/vm/compiler/oopMap.cpp	Thu Aug 24 01:27:02 2017 -0400
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -389,17 +389,16 @@
    1.11          omv = oms.current();
    1.12          oop* loc = fr->oopmapreg_to_location(omv.reg(),reg_map);
    1.13          if ( loc != NULL ) {
    1.14 +          oop *derived_loc = loc;
    1.15            oop *base_loc    = fr->oopmapreg_to_location(omv.content_reg(), reg_map);
    1.16 -          oop *derived_loc = loc;
    1.17 -          oop val = *base_loc;
    1.18 -          if (val == (oop)NULL || Universe::is_narrow_oop_base(val)) {
    1.19 -            // Ignore NULL oops and decoded NULL narrow oops which
    1.20 -            // equal to Universe::narrow_oop_base when a narrow oop
    1.21 -            // implicit null check is used in compiled code.
    1.22 -            // The narrow_oop_base could be NULL or be the address
    1.23 -            // of the page below heap depending on compressed oops mode.
    1.24 -          } else
    1.25 +          // Ignore NULL oops and decoded NULL narrow oops which
    1.26 +          // equal to Universe::narrow_oop_base when a narrow oop
    1.27 +          // implicit null check is used in compiled code.
    1.28 +          // The narrow_oop_base could be NULL or be the address
    1.29 +          // of the page below heap depending on compressed oops mode.
    1.30 +          if (base_loc != NULL && *base_loc != (oop)NULL && !Universe::is_narrow_oop_base(*base_loc)) {
    1.31              derived_oop_fn(base_loc, derived_loc);
    1.32 +          }
    1.33          }
    1.34          oms.next();
    1.35        }  while (!oms.is_done());

mercurial