comparison src/share/vm/oops/instanceKlass.cpp @ 876:1413494da700

6850957: Honor -XX:OnOutOfMemoryError when array size exceeds VM limit Summary: call report_java_out_of_memory("Requested array size exceeds VM limit") Reviewed-by: tbell, dholmes, alanb, ysr Contributed-by: jeremymanson@google.com
author martin
date Mon, 29 Jun 2009 14:42:12 -0700
parents 6a93908f268f
children b37c246bf7ce 75e30968ebe1 148e5441d916
comparison
equal deleted inserted replaced
875:6a93908f268f 876:1413494da700
506 } 506 }
507 507
508 objArrayOop instanceKlass::allocate_objArray(int n, int length, TRAPS) { 508 objArrayOop instanceKlass::allocate_objArray(int n, int length, TRAPS) {
509 if (length < 0) THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); 509 if (length < 0) THROW_0(vmSymbols::java_lang_NegativeArraySizeException());
510 if (length > arrayOopDesc::max_array_length(T_OBJECT)) { 510 if (length > arrayOopDesc::max_array_length(T_OBJECT)) {
511 report_java_out_of_memory("Requested array size exceeds VM limit");
511 THROW_OOP_0(Universe::out_of_memory_error_array_size()); 512 THROW_OOP_0(Universe::out_of_memory_error_array_size());
512 } 513 }
513 int size = objArrayOopDesc::object_size(length); 514 int size = objArrayOopDesc::object_size(length);
514 klassOop ak = array_klass(n, CHECK_NULL); 515 klassOop ak = array_klass(n, CHECK_NULL);
515 KlassHandle h_ak (THREAD, ak); 516 KlassHandle h_ak (THREAD, ak);