--- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp Sun Sep 25 16:03:29 2011 -0700
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp Mon Sep 26 10:24:05 2011 -0700
@@ -76,7 +76,7 @@
return k();
}
-typeArrayOop typeArrayKlass::allocate(int length, TRAPS) {
+typeArrayOop typeArrayKlass::allocate_common(int length, bool do_zero, TRAPS) {
assert(log2_element_size() >= 0, "bad scale");
if (length >= 0) {
if (length <= max_length()) {
@@ -84,7 +84,11 @@
KlassHandle h_k(THREAD, as_klassOop());
typeArrayOop t;
CollectedHeap* ch = Universe::heap();
- t = (typeArrayOop)CollectedHeap::array_allocate(h_k, (int)size, length, CHECK_NULL);
+ if (do_zero) {
+ t = (typeArrayOop)CollectedHeap::array_allocate(h_k, (int)size, length, CHECK_NULL);
+ } else {
+ t = (typeArrayOop)CollectedHeap::array_allocate_nozero(h_k, (int)size, length, CHECK_NULL);
+ }
assert(t->is_parsable(), "Don't publish unless parsable");
return t;
} else {