Mercurial > hg > truffle
comparison src/share/vm/opto/lcm.cpp @ 10279:70120f47d403
8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Summary: Add NULL checks and asserts for Type::make_ptr() returned value.
Reviewed-by: twisti
author | kvn |
---|---|
date | Thu, 09 May 2013 17:28:04 -0700 |
parents | 571076d3c79d |
children | d1034bd8cefc d2907f74462e |
comparison
equal
deleted
inserted
replaced
10278:6f3fd5150b67 | 10279:70120f47d403 |
---|---|
217 MacroAssembler::needs_explicit_null_check(offset) ) | 217 MacroAssembler::needs_explicit_null_check(offset) ) |
218 continue; // Give up if offset is beyond page size | 218 continue; // Give up if offset is beyond page size |
219 // cannot reason about it; is probably not implicit null exception | 219 // cannot reason about it; is probably not implicit null exception |
220 } else { | 220 } else { |
221 const TypePtr* tptr; | 221 const TypePtr* tptr; |
222 if (UseCompressedOops && Universe::narrow_oop_shift() == 0) { | 222 if (UseCompressedOops && (Universe::narrow_oop_shift() == 0 || |
223 Universe::narrow_klass_shift() == 0)) { | |
223 // 32-bits narrow oop can be the base of address expressions | 224 // 32-bits narrow oop can be the base of address expressions |
224 tptr = base->bottom_type()->make_ptr(); | 225 tptr = base->get_ptr_type(); |
225 } else { | 226 } else { |
226 // only regular oops are expected here | 227 // only regular oops are expected here |
227 tptr = base->bottom_type()->is_ptr(); | 228 tptr = base->bottom_type()->is_ptr(); |
228 } | 229 } |
229 // Give up if offset is not a compile-time constant | 230 // Give up if offset is not a compile-time constant |