< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.java

Print this page
rev 47747 : 8184777: Factor out species generation logic from BoundMethodHandle
Reviewed-by: vlivanov
Contributed-by: john.r.rose@oracle.com, claes.redestad@oracle.com

*** 240,251 **** } dmhMethods = newDMHMethods; lines.map(line -> line.split(" ")) .forEach(parts -> { switch (parts[0]) { ! case "[BMH_RESOLVE]": ! speciesTypes.add(expandSignature(parts[1])); break; case "[LF_RESOLVE]": String methodType = parts[3]; validateMethodType(methodType); if (parts[1].contains("Invokers")) { --- 240,257 ---- } dmhMethods = newDMHMethods; lines.map(line -> line.split(" ")) .forEach(parts -> { switch (parts[0]) { ! case "[SPECIES_RESOLVE]": ! // Allow for new types of species data classes being resolved here ! if (parts.length == 3 && parts[1].startsWith("java.lang.invoke.BoundMethodHandle$Species_")) { ! String species = parts[1].substring("java.lang.invoke.BoundMethodHandle$Species_".length()); ! if (!"L".equals(species)) { ! speciesTypes.add(expandSignature(species)); ! } ! } break; case "[LF_RESOLVE]": String methodType = parts[3]; validateMethodType(methodType); if (parts[1].contains("Invokers")) {
*** 447,457 **** "/java.base/" + BASIC_FORMS_HOLDER + ".class"; private static final String INVOKERS_HOLDER_ENTRY = "/java.base/" + INVOKERS_HOLDER + ".class"; // Convert LL -> LL, L3 -> LLL ! private static String expandSignature(String signature) { StringBuilder sb = new StringBuilder(); char last = 'X'; int count = 0; for (int i = 0; i < signature.length(); i++) { char c = signature.charAt(i); --- 453,463 ---- "/java.base/" + BASIC_FORMS_HOLDER + ".class"; private static final String INVOKERS_HOLDER_ENTRY = "/java.base/" + INVOKERS_HOLDER + ".class"; // Convert LL -> LL, L3 -> LLL ! public static String expandSignature(String signature) { StringBuilder sb = new StringBuilder(); char last = 'X'; int count = 0; for (int i = 0; i < signature.length(); i++) { char c = signature.charAt(i);
< prev index next >