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());