equal
deleted
inserted
replaced
335 arrayOop Reflection::reflect_new_array(oop element_mirror, jint length, TRAPS) { |
335 arrayOop Reflection::reflect_new_array(oop element_mirror, jint length, TRAPS) { |
336 if (element_mirror == NULL) { |
336 if (element_mirror == NULL) { |
337 THROW_0(vmSymbols::java_lang_NullPointerException()); |
337 THROW_0(vmSymbols::java_lang_NullPointerException()); |
338 } |
338 } |
339 if (length < 0) { |
339 if (length < 0) { |
340 THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); |
340 THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); |
341 } |
341 } |
342 if (java_lang_Class::is_primitive(element_mirror)) { |
342 if (java_lang_Class::is_primitive(element_mirror)) { |
343 Klass* tak = basic_type_mirror_to_arrayklass(element_mirror, CHECK_NULL); |
343 Klass* tak = basic_type_mirror_to_arrayklass(element_mirror, CHECK_NULL); |
344 return TypeArrayKlass::cast(tak)->allocate(length, THREAD); |
344 return TypeArrayKlass::cast(tak)->allocate(length, THREAD); |
345 } else { |
345 } else { |
367 |
367 |
368 jint dimensions[MAX_DIM]; // C array copy of intArrayOop |
368 jint dimensions[MAX_DIM]; // C array copy of intArrayOop |
369 for (int i = 0; i < len; i++) { |
369 for (int i = 0; i < len; i++) { |
370 int d = dim_array->int_at(i); |
370 int d = dim_array->int_at(i); |
371 if (d < 0) { |
371 if (d < 0) { |
372 THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); |
372 THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", d)); |
373 } |
373 } |
374 dimensions[i] = d; |
374 dimensions[i] = d; |
375 } |
375 } |
376 |
376 |
377 Klass* klass; |
377 Klass* klass; |