On Tue, 21 Mar 2023 20:21:23 GMT, Chen Liang <[email protected]> wrote:
>> This typo doesn't allow creation of malformed ClassDesc or MethodTypeDesc,
>> but it produces an erroneous exception on certain inputs. Running
>> `java.lang.constant.MethodTypeDesc.ofDescriptor("(IIIII[[[V)I")` in Jshell
>> 19.0.2 throws StringIndexOutOfBoundsException, and throws
>> IllegalArgumentException in the Jshell for this patch.
>
> Chen Liang has updated the pull request with a new target base due to a merge
> or a rebase. The incremental webrev excludes the unrelated changes brought in
> by the merge/rebase. The pull request contains five additional commits since
> the last revision:
>
> - Merge branch 'master' of https://git.openjdk.java.net/jdk into 8303930
> - Add test for skipOverFieldSignature bug
> - Merge branch 'master' of https://git.openjdk.java.net/jdk into 8303930
> - Copyright year
> - 8303930: Fix ConstantUtils.skipOverFieldSignature void case return value
Otherwise, looks good.
test/jdk/java/lang/constant/boottest/java.base/java/lang/constant/ConstantUtilsTest.java
line 73:
> 71: public void testSkipOverFieldSignatureVoid() {
> 72: int ret = ConstantUtils.skipOverFieldSignature("(V)V", 1, 4,
> false);
> 73: assertEquals(ret, 0, "Descriptor Length of (V)V starting at index
> 1, void disallowed");
I think you mean:
Suggestion:
assertEquals(ret, 0, "Descriptor of (V)V starting at index 1, void
disallowed");
-------------
PR Review: https://git.openjdk.org/jdk/pull/12964#pullrequestreview-1366077560
PR Review Comment: https://git.openjdk.org/jdk/pull/12964#discussion_r1153889851