On Apr 19, 2017, at 12:14 AM, David Holmes <david.hol...@oracle.com> wrote:
> 
> Some of these are a lot more awkward to do during classfile parsing and will 
> require symbol comparisons. I was wanting to avoid "deep validation" of NMs 
> as it penalizes all the good code. Having a "bad" NM entry seems harmless as 
> these entries are only used to validate the initial claim of nest membership. 
> If an entry is "bad" then by definition it will not match with any claimee.

I don't see how that is a significant concern.  The symbol bodies are hot in 
cache
at the point we would check prefixes, since they are already being scanned for 
other
purposes, such as initial interning, and also syntax checking.  Existing 
processing
is exactly as deep (or shallow) as the checks I want.

If we turn off the "verify" flag for class loading, then maybe we can buy 
something
by dropping those (and all the other) constraint checks.

By syntax checking, I mean that if I mention a CONSTANT_Class in the CP,
and its corresponding CONSTANT_Utf8 has a broken syntax (e.g., "." instead
of "/", or two "//" in a row) the JVMS mandates an error.  But those are the
same bytes I want to look at when they are referenced by a MoN or NMs
attribute.  It will all be in cache, and the cycles to do the checks will be
undetectable.

— John

Reply via email to