<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Apr 19, 2017, at 12:14 AM, David Holmes <<a href="mailto:david.holmes@oracle.com" class="">david.holmes@oracle.com</a>> wrote:<br class=""><div><blockquote type="cite" class=""><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">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.</span><br style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote></div><br class=""><div class="">I don't see how that is a significant concern.  The symbol bodies are hot in cache</div><div class="">at the point we would check prefixes, since they are already being scanned for other</div><div class="">purposes, such as initial interning, and also syntax checking.  Existing processing</div><div class="">is exactly as deep (or shallow) as the checks I want.</div><div class=""><br class=""></div><div class="">If we turn off the "verify" flag for class loading, then maybe we can buy something</div><div class="">by dropping those (and all the other) constraint checks.</div><div class=""><br class=""></div><div class="">By syntax checking, I mean that if I mention a CONSTANT_Class in the CP,</div><div class="">and its corresponding CONSTANT_Utf8 has a broken syntax (e.g., "." instead</div><div class="">of "/", or two "//" in a row) the JVMS mandates an error.  But those are the</div><div class="">same bytes I want to look at when they are referenced by a MoN or NMs</div><div class="">attribute.  It will all be in cache, and the cycles to do the checks will be</div><div class="">undetectable.</div><div class=""><br class=""></div><div class="">— John</div></body></html>