hotspot/src/share/vm/oops/typeArrayKlass.cpp
changeset 10566 630c177ec580
parent 9997 b75b7939f448
child 12114 9a825a536095
--- 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 {