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

Print this page
rev 17771 : 8184777: species logic for BoundMethodHandle doesn't scale, needs refactor

@@ -299,11 +299,11 @@
         Name[] names = arguments(nameCursor - INARG_LIMIT, invokerFormType);
         assert(names.length == nameCursor)
                 : Arrays.asList(mtype, customized, which, nameCursor, names.length);
         if (MTYPE_ARG >= INARG_LIMIT) {
             assert(names[MTYPE_ARG] == null);
-            BoundMethodHandle.SpeciesData speciesData = BoundMethodHandle.speciesData_L();
+            BoundMethodHandle.BMHSpecies speciesData = BoundMethodHandle.speciesData_L();
             names[THIS_MH] = names[THIS_MH].withConstraint(speciesData);
             NamedFunction getter = speciesData.getterFunction(0);
             names[MTYPE_ARG] = new Name(getter, names[THIS_MH]);
             // else if isLinker, then MTYPE is passed in from the caller (e.g., the JVM)
         }

@@ -411,11 +411,11 @@
         names[CALL_VH] = argument(CALL_VH, BasicType.basicType(Object.class));
         for (int i = 0; i < mtype.parameterCount(); i++) {
             names[ARG_BASE + i] = argument(ARG_BASE + i, BasicType.basicType(mtype.parameterType(i)));
         }
 
-        BoundMethodHandle.SpeciesData speciesData = BoundMethodHandle.speciesData_L();
+        BoundMethodHandle.BMHSpecies speciesData = BoundMethodHandle.speciesData_L();
         names[THIS_MH] = names[THIS_MH].withConstraint(speciesData);
 
         NamedFunction getter = speciesData.getterFunction(0);
         names[VAD_ARG] = new Name(getter, names[THIS_MH]);