On Wed, 19 Jun 2024 12:04:27 GMT, Oussama Louati <d...@openjdk.org> wrote:
>> An indify tool in j.l.i tests (also in vmTestBase) convert some source-code >> private static methods with MT_ MH_, and INDY_ prefixes into MethodHandle, >> MethodType, and CallSite constants. >> It currently uses ad-hoc code to process class files and intends to migrate >> to ASM; but since we have the Classfile API, we can migrate to Classfile API >> instead. > > Oussama Louati has updated the pull request incrementally with one additional > commit since the last revision: > > fix: fix comments Formatting nits: More formatting nits: test/jdk/java/lang/invoke/indify/Indify.java line 656: > 654: for(PoolEntry entry : classModel.constantPool()){ > 655: char mark = 0; > 656: if(poolMarks[entry.index()] != 0) continue; Suggestion: boolean initializeMarks() { boolean anyMarkChanged = false; for (PoolEntry entry : classModel.constantPool()) { char mark = 0; if (poolMarks[entry.index()] != 0) continue; test/jdk/java/lang/invoke/indify/Indify.java line 674: > 672: if(poolMarks[memberRefEntry.owner().index()] != 0){ > 673: mark = poolMarks[memberRefEntry.owner().index()]; > 674: } Suggestion: if (entry instanceof Utf8Entry utf8Entry) { mark = nameMark(utf8Entry.stringValue()); } if (entry instanceof ClassEntry classEntry) { mark = nameMark(classEntry.asInternalName()); } if (entry instanceof StringEntry stringEntry) { mark = nameMark(stringEntry.stringValue()); } if (entry instanceof NameAndTypeEntry nameAndTypeEntry) { mark = nameAndTypeMark(nameAndTypeEntry.name(), nameAndTypeEntry.type()); } if (entry instanceof MemberRefEntry memberRefEntry) { poolMarks[memberRefEntry.owner().index()] = nameMark(memberRefEntry.owner().asInternalName()); if(poolMarks[memberRefEntry.owner().index()] != 0){ mark = poolMarks[memberRefEntry.owner().index()]; } test/jdk/java/lang/invoke/indify/Indify.java line 678: > 676: > if(memberRefEntry.owner().equals(classModel.thisClass())){ > 677: mark = > nameMark(memberRefEntry.name().stringValue()); > 678: } Suggestion: else { if (memberRefEntry.owner().equals(classModel.thisClass())) { mark = nameMark(memberRefEntry.name().stringValue()); } test/jdk/java/lang/invoke/indify/Indify.java line 686: > 684: return anyMarkChanged; > 685: } > 686: char nameAndTypeMark(Utf8Entry name, Utf8Entry type){ Suggestion: } char nameAndTypeMark(Utf8Entry name, Utf8Entry type){ test/jdk/java/lang/invoke/indify/Indify.java line 691: > 689: String descriptor = type.stringValue(); > 690: String requiredType; > 691: switch (mark){ Suggestion: switch (mark) { test/jdk/java/lang/invoke/indify/Indify.java line 696: > 694: default: return 0; > 695: } > 696: if(matchType(descriptor, requiredType)) return mark; Suggestion: if (matchType(descriptor, requiredType)) return mark; ------------- PR Review: https://git.openjdk.org/jdk/pull/18841#pullrequestreview-2129054394 PR Review: https://git.openjdk.org/jdk/pull/18841#pullrequestreview-2129056939 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646696601 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646697107 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646697252 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646698327 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646698374 PR Review Comment: https://git.openjdk.org/jdk/pull/18841#discussion_r1646698432