RFR 8144931: Assert class signatures are correct and refer to valid classes

Uwe Schindler uschindler at apache.org
Thu Feb 18 13:54:23 UTC 2016


Hi,

just a stupid question from somebody outside the OpenJDK developers:
You are already using ASM to generate the class files. Why not also use the Type class in ASM to generate the signatures of a class constant?:

Instead of:

static final String  LF_HIDDEN_SIG = className("Ljava/lang/invoke/LambdaForm$Hidden;");

Use the following to define the constant:

import jdk.internal.org.objectweb.asm.Type;
import java.lang.invoke.LambdaForm.Hidden;
static final String  LF_HIDDEN_SIG = Type.getDescriptor(Hidden.class);

This is compile-time checked, because of the .class notation.

Thanks,
Uwe

-----
Uwe Schindler
uschindler at apache.org 
ASF Member, Apache Lucene PMC / Committer
Bremen, Germany
http://lucene.apache.org/

> -----Original Message-----
> From: core-libs-dev [mailto:core-libs-dev-bounces at openjdk.java.net] On
> Behalf Of shilpi.rastogi at oracle.com
> Sent: Thursday, February 18, 2016 12:18 PM
> To: Vladimir Ivanov <vladimir.x.ivanov at oracle.com>; core-libs-
> dev at openjdk.java.net
> Subject: Re: RFR 8144931: Assert class signatures are correct and refer to valid
> classes
> 
> Thank You Vladimir!
> 
> I have done the changes. Please review the updated patch-
> 
> http://cr.openjdk.java.net/~srastogi/8144931/webrev.02/
> 
> Regards,
> Shilpi
> 
> On 2/18/2016 1:58 PM, Vladimir Ivanov wrote:
> > Shilpi,
> >
> > _CLASS suffix looks redundant and you can abbreviate LAMBDA_FORM to
> LF:
> >   LF_HIDDEN_SIG
> >   LF_COMPILED_SIG
> >   FORCEINLINE_SIG
> >   DONTINLINE_SIG
> >
> > Otherwise, looks fine.
> >
> > Best regards,
> > Vladimir Ivanov
> >
> > On 2/17/16 5:47 PM, shilpi rastogi wrote:
> >> Hi All,
> >>
> >> Please review fix for the following bug-
> >>
> >> https://bugs.openjdk.java.net/browse/JDK-8144931
> >> http://cr.openjdk.java.net/~srastogi/8144931/webrev.01/
> >>
> >>
> >> Thanks,
> >> Shilpi




More information about the core-libs-dev mailing list