< prev index next >

src/hotspot/share/opto/library_call.cpp

Print this page

        

@@ -2437,14 +2437,11 @@
     decorators |= IN_HEAP;
   }
 
   val = is_store ? argument(4) : NULL;
 
-  const TypePtr* adr_type = _gvn.type(adr)->isa_ptr();
-  if (adr_type == TypePtr::NULL_PTR) {
-    return false; // off-heap access with zero address
-  }
+  const TypePtr *adr_type = _gvn.type(adr)->isa_ptr();
 
   // Try to categorize the address.
   Compile::AliasType* alias_type = C->alias_type(adr_type);
   assert(alias_type->index() != Compile::AliasIdxBot, "no bare pointers here");
 

@@ -4499,12 +4496,12 @@
 JVMState* LibraryCallKit::arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int& saved_reexecute_sp) {
   if (alloc != NULL) {
     ciMethod* trap_method = alloc->jvms()->method();
     int trap_bci = alloc->jvms()->bci();
 
-    if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &&
-        !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
+    if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &
+          !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
       // Make sure there's no store between the allocation and the
       // arraycopy otherwise visible side effects could be rexecuted
       // in case of deoptimization and cause incorrect execution.
       bool no_interfering_store = true;
       Node* mem = alloc->in(TypeFunc::Memory);
< prev index next >