src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.java
equal
deleted
inserted
replaced
240 } |
240 } |
241 dmhMethods = newDMHMethods; |
241 dmhMethods = newDMHMethods; |
242 lines.map(line -> line.split(" ")) |
242 lines.map(line -> line.split(" ")) |
243 .forEach(parts -> { |
243 .forEach(parts -> { |
244 switch (parts[0]) { |
244 switch (parts[0]) { |
245 case "[BMH_RESOLVE]": |
245 case "[SPECIES_RESOLVE]": |
246 speciesTypes.add(expandSignature(parts[1])); |
246 // Allow for new types of species data classes being resolved here |
|
247 if (parts.length == 3 && parts[1].startsWith("java.lang.invoke.BoundMethodHandle$Species_")) { |
|
248 String species = parts[1].substring("java.lang.invoke.BoundMethodHandle$Species_".length()); |
|
249 if (!"L".equals(species)) { |
|
250 speciesTypes.add(expandSignature(species)); |
|
251 } |
|
252 } |
247 break; |
253 break; |
248 case "[LF_RESOLVE]": |
254 case "[LF_RESOLVE]": |
249 String methodType = parts[3]; |
255 String methodType = parts[3]; |
250 validateMethodType(methodType); |
256 validateMethodType(methodType); |
251 if (parts[1].contains("Invokers")) { |
257 if (parts[1].contains("Invokers")) { |
447 "/java.base/" + BASIC_FORMS_HOLDER + ".class"; |
453 "/java.base/" + BASIC_FORMS_HOLDER + ".class"; |
448 private static final String INVOKERS_HOLDER_ENTRY = |
454 private static final String INVOKERS_HOLDER_ENTRY = |
449 "/java.base/" + INVOKERS_HOLDER + ".class"; |
455 "/java.base/" + INVOKERS_HOLDER + ".class"; |
450 |
456 |
451 // Convert LL -> LL, L3 -> LLL |
457 // Convert LL -> LL, L3 -> LLL |
452 private static String expandSignature(String signature) { |
458 public static String expandSignature(String signature) { |
453 StringBuilder sb = new StringBuilder(); |
459 StringBuilder sb = new StringBuilder(); |
454 char last = 'X'; |
460 char last = 'X'; |
455 int count = 0; |
461 int count = 0; |
456 for (int i = 0; i < signature.length(); i++) { |
462 for (int i = 0; i < signature.length(); i++) { |
457 char c = signature.charAt(i); |
463 char c = signature.charAt(i); |