< prev index next >

src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java

Print this page
rev 14297 : 8155106: MHs.Lookup.findConstructor returns handles for array classes

*** 23,32 **** --- 23,33 ---- * questions. */ package java.lang.invoke; + import java.lang.reflect.Array; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Arrays; import java.util.Collections; import java.util.Iterator;
*** 1890,1900 **** MH_initIterator = 10, MH_iterateNext = 11, MH_tryFinallyExec = 12, MH_tryFinallyVoidExec = 13, MH_decrementCounter = 14, ! MH_LIMIT = 15; static MethodHandle getConstantHandle(int idx) { MethodHandle handle = HANDLES[idx]; if (handle != null) { return handle; --- 1891,1902 ---- MH_initIterator = 10, MH_iterateNext = 11, MH_tryFinallyExec = 12, MH_tryFinallyVoidExec = 13, MH_decrementCounter = 14, ! MH_Array_newInstance = 15, ! MH_LIMIT = 16; static MethodHandle getConstantHandle(int idx) { MethodHandle handle = HANDLES[idx]; if (handle != null) { return handle;
*** 1963,1972 **** --- 1965,1977 ---- return IMPL_LOOKUP.findStatic(MethodHandleImpl.class, "tryFinallyVoidExecutor", MethodType.methodType(void.class, MethodHandle.class, MethodHandle.class, Object[].class)); case MH_decrementCounter: return IMPL_LOOKUP.findStatic(MethodHandleImpl.class, "decrementCounter", MethodType.methodType(int.class, int.class)); + case MH_Array_newInstance: + return IMPL_LOOKUP.findStatic(Array.class, "newInstance", + MethodType.methodType(Object.class, Class.class, int.class)); } } catch (ReflectiveOperationException ex) { throw newInternalError(ex); } throw newInternalError("Unknown function index: " + idx);
< prev index next >