RFR: 8170595: Optimize Class.isAnonymousClass

Claes Redestad claes.redestad at oracle.com
Thu Dec 8 11:06:33 UTC 2016


On 2016-12-08 04:30, Mandy Chung wrote:
>> On Dec 2, 2016, at 6:29 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>>
>> :
>> http://cr.openjdk.java.net/~redestad/8170595/webrev.03/
>>
>> This brings significant improvements to some variants:
> Good to see the significant improvements.
>
> I think what isLocalOrAnonymousClass needs probably is something like this:
>
>    private boolean hasEnclosingMethodInfo() {
>        Object[] enclosingInfo = getEnclosingMethod0();
>        if (enclosingInfo != null) {
>            EnclosingMethodInfo.validate(enclosingInfo);
>        }
>        return enclosingInfo != null;
>    }
>
> Then EnclosingMethodInfo doesn’t seem the need to change.  The overall change would be simpler.

Adding hasEnclosingMethodInfo has some descriptive value, but we'd still
need to change EnclosingMethodInfo a bit to separate the validation from
the constructor.

>
> As Joe suggests, this worths adding test cases for these methods, if not present.

I was also concerned about the lack of explicit tests for this under 
jdk/test, but found what
seemed like comprehensive tests in langtools, EnclosingMethodTest.java 
in particular.

However, it seems adding a straightforward, minimal test inspired by 
other tests under
java/lang/Class wouldn't hurt to ensure completeness and some more local 
coverage, so
I made an attempt at this:

http://cr.openjdk.java.net/~redestad/8170595/webrev.04/

Thanks!

/Claes

>
> Mandy
>



More information about the core-libs-dev mailing list