src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java
changeset 47753 a2008587c13f
parent 47471 304ef03403b1
child 47825 13e39ca700d0
equal deleted inserted replaced
47752:e0041b182e31 47753:a2008587c13f
   774         BoundMethodHandle mh;
   774         BoundMethodHandle mh;
   775         try {
   775         try {
   776             if (PROFILE_GWT) {
   776             if (PROFILE_GWT) {
   777                 int[] counts = new int[2];
   777                 int[] counts = new int[2];
   778                 mh = (BoundMethodHandle)
   778                 mh = (BoundMethodHandle)
   779                         BoundMethodHandle.speciesData_LLLL().constructor().invokeBasic(type, form,
   779                         BoundMethodHandle.speciesData_LLLL().factory().invokeBasic(type, form,
   780                                 (Object) test, (Object) profile(target), (Object) profile(fallback), counts);
   780                                 (Object) test, (Object) profile(target), (Object) profile(fallback), counts);
   781             } else {
   781             } else {
   782                 mh = (BoundMethodHandle)
   782                 mh = (BoundMethodHandle)
   783                         BoundMethodHandle.speciesData_LLL().constructor().invokeBasic(type, form,
   783                         BoundMethodHandle.speciesData_LLL().factory().invokeBasic(type, form,
   784                                 (Object) test, (Object) profile(target), (Object) profile(fallback));
   784                                 (Object) test, (Object) profile(target), (Object) profile(fallback));
   785             }
   785             }
   786         } catch (Throwable ex) {
   786         } catch (Throwable ex) {
   787             throw uncaughtException(ex);
   787             throw uncaughtException(ex);
   788         }
   788         }
  1087         MethodHandle unboxResult = unboxResultHandle(type.returnType());
  1087         MethodHandle unboxResult = unboxResultHandle(type.returnType());
  1088 
  1088 
  1089         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLLLL();
  1089         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLLLL();
  1090         BoundMethodHandle mh;
  1090         BoundMethodHandle mh;
  1091         try {
  1091         try {
  1092             mh = (BoundMethodHandle) data.constructor().invokeBasic(type, form, (Object) target, (Object) exType,
  1092             mh = (BoundMethodHandle) data.factory().invokeBasic(type, form, (Object) target, (Object) exType,
  1093                     (Object) catcher, (Object) collectArgs, (Object) unboxResult);
  1093                     (Object) catcher, (Object) collectArgs, (Object) unboxResult);
  1094         } catch (Throwable ex) {
  1094         } catch (Throwable ex) {
  1095             throw uncaughtException(ex);
  1095             throw uncaughtException(ex);
  1096         }
  1096         }
  1097         assert(mh.type() == type);
  1097         assert(mh.type() == type);
  1883         LoopClauses clauseData =
  1883         LoopClauses clauseData =
  1884                 new LoopClauses(new MethodHandle[][]{toArray(init), toArray(step), toArray(pred), toArray(fini)});
  1884                 new LoopClauses(new MethodHandle[][]{toArray(init), toArray(step), toArray(pred), toArray(fini)});
  1885         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLL();
  1885         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLL();
  1886         BoundMethodHandle mh;
  1886         BoundMethodHandle mh;
  1887         try {
  1887         try {
  1888             mh = (BoundMethodHandle) data.constructor().invokeBasic(type, form, (Object) clauseData,
  1888             mh = (BoundMethodHandle) data.factory().invokeBasic(type, form, (Object) clauseData,
  1889                     (Object) collectArgs, (Object) unboxResult);
  1889                     (Object) collectArgs, (Object) unboxResult);
  1890         } catch (Throwable ex) {
  1890         } catch (Throwable ex) {
  1891             throw uncaughtException(ex);
  1891             throw uncaughtException(ex);
  1892         }
  1892         }
  1893         assert(mh.type() == type);
  1893         assert(mh.type() == type);
  2126         MethodHandle unboxResult = unboxResultHandle(rtype);
  2126         MethodHandle unboxResult = unboxResultHandle(rtype);
  2127 
  2127 
  2128         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLLL();
  2128         BoundMethodHandle.SpeciesData data = BoundMethodHandle.speciesData_LLLL();
  2129         BoundMethodHandle mh;
  2129         BoundMethodHandle mh;
  2130         try {
  2130         try {
  2131             mh = (BoundMethodHandle) data.constructor().invokeBasic(type, form, (Object) target, (Object) cleanup,
  2131             mh = (BoundMethodHandle) data.factory().invokeBasic(type, form, (Object) target, (Object) cleanup,
  2132                     (Object) collectArgs, (Object) unboxResult);
  2132                     (Object) collectArgs, (Object) unboxResult);
  2133         } catch (Throwable ex) {
  2133         } catch (Throwable ex) {
  2134             throw uncaughtException(ex);
  2134             throw uncaughtException(ex);
  2135         }
  2135         }
  2136         assert(mh.type() == type);
  2136         assert(mh.type() == type);