[JDK-8376522](https://bugs.openjdk.org/browse/JDK-8376522) indicates that the thisUninit should be applied even when uninitializedThis is on the stack. Previous implementations failed to do this, so this patch properly enforces this spec change.
Now that both the stack and locals must be considered when applying flagThisUninit, the origin of the flag needs to be preserved, so the StackMapReader now tracks if the flag originated from locals or the stack. Since the stack is cleared between frames, only an uninitializedThis from locals is preserved. In addition to VM changes, the ClassFile API had to be updated as it only considered stack frame locals. The test case offered by @liach in the JBS issue has been adapted to a JASM test to verify the change. Verified with tier 1-5 tests. --------- - [x] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). ------------- Commit messages: - Reverted classfile API changes - Reverted classfile API changes - Preserve uninitializedThis through separate field - Use updated flags when creating new frames - 8389840: Verifier is not setting flagThisUninit when uninitializedThis is on the stack Changes: https://git.openjdk.org/jdk/pull/32242/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32242&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8389840 Stats: 114 lines in 5 files changed: 101 ins; 0 del; 13 mod Patch: https://git.openjdk.org/jdk/pull/32242.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/32242/head:pull/32242 PR: https://git.openjdk.org/jdk/pull/32242
