1.1 --- a/rt/emul/mini/src/main/java/java/lang/reflect/Array.java Tue May 06 10:08:42 2014 +0200
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/reflect/Array.java Tue May 06 11:12:40 2014 +0200
1.3 @@ -677,16 +677,20 @@
1.4 // private static native void log(Object m);
1.5
1.6 @Exported
1.7 - private static Object multiNewArray(String sig, int[] dims, int index)
1.8 + private static Object multiNewArray(String sig, int[] dims, Object fn)
1.9 + throws IllegalArgumentException, NegativeArraySizeException {
1.10 + return multiNewArray(sig, dims, 0, fn);
1.11 + }
1.12 + private static Object multiNewArray(String sig, int[] dims, int index, Object fn)
1.13 throws IllegalArgumentException, NegativeArraySizeException {
1.14 if (dims.length == index + 1) {
1.15 - return newArray(sig.length() == 2, sig, null, dims[index]);
1.16 + return newArray(sig.length() == 2, sig, fn, dims[index]);
1.17 }
1.18 Object arr = newArray(false, sig, null, dims[index]);
1.19 String compsig = sig.substring(1);
1.20 int len = getLength(arr);
1.21 for (int i = 0; i < len; i++) {
1.22 - setArray(arr, i, multiNewArray(compsig, dims, index + 1));
1.23 + setArray(arr, i, multiNewArray(compsig, dims, index + 1, fn));
1.24 }
1.25 return arr;
1.26 }