From 7ec44373b51141fa3fff9336636923f42a4140b8 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Fri, 29 Feb 2008 11:22:27 -0800 Subject: [PATCH] 6667581: Don't generate initialization (by 0) code for arrays with size 0 Generate_arraycopy() does not check the size of allocated array. Reviewed-by: jrose, never --- hotspot/src/share/vm/opto/library_call.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/src/share/vm/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index e69e2d9e68b..b0587edfc3b 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -4170,6 +4170,7 @@ LibraryCallKit::generate_arraycopy(const TypePtr* adr_type, && !_gvn.eqv_uncast(src, dest) && ((alloc = tightly_coupled_allocation(dest, slow_region)) != NULL) + && _gvn.find_int_con(alloc->in(AllocateNode::ALength), 1) > 0 && alloc->maybe_set_complete(&_gvn)) { // "You break it, you buy it." InitializeNode* init = alloc->initialization();