RFR: 8320396: Class-File API ClassModel::verify should include checks from hotspot/share/classfile/classFileParser.cpp [v5]

Adam Sotona asotona at openjdk.org
Tue May 14 09:11:04 UTC 2024


On Tue, 14 May 2024 08:30:56 GMT, Aggelos Biboudis <abimpoudis at openjdk.org> wrote:

>> Adam Sotona has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - fixed error thrown by VerifierImpl
>>  - applied suggested changes
>
> src/java.base/share/classes/jdk/internal/classfile/impl/verifier/ParserVerifier.java line 223:
> 
>> 221:                     errors.add(new VerifyError("Arguments can't fit into locals in %s".formatted(toString(ae))));
>> 222:                 }
>> 223:                 int l = 12 + ca.codeLength() + 8 * ca.exceptionHandlers().size();
> 
> nit (or not): it would be amazing if all these constants have a name. They are almost intuitive, I admit, but it would improve readability a lot.

I think about the readability exactly opposite. When deciding between:

static final int CODE_ATTRIBUTE_HEADER_SIZE = 12;
static final int CODE_ATTRIBUTE_EXCEPTION_HANDLER_ENTRY_SIZE = 8;

...

int l = CODE_ATTRIBUTE_HEADER_SIZE + ca.codeLength() + CODE_ATTRIBUTE_EXCEPTION_HANDLER_ENTRY_SIZE * ca.exceptionHandlers().size();

or

int l = 12 + ca.codeLength() + 8 * ca.exceptionHandlers().size();

For this specific case ( implementation transcription of `classFileParser.cpp`) I prefer the shorter.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16809#discussion_r1599666623


More information about the compiler-dev mailing list