RFR (S) 8149835: StringConcatFactory should emit classes with the same package as the host class

Paul Sandoz paul.sandoz at oracle.com
Wed Feb 17 10:48:21 UTC 2016


> On 17 Feb 2016, at 10:36, Aleksey Shipilev <aleksey.shipilev at oracle.com> wrote:
> 
> On 02/16/2016 11:59 PM, Andrej Golovnin wrote:
>> Hi Aleksey,
>> 
>>> http://cr.openjdk.java.net/~shade/8149835/webrev.jdk.01/
>> 
>> 701                     return (pkg != null ? pkg.getName().replace(".", "/") + "/" : "") + "Stubs$$StringConcat";
>> 702                 } else {
>> 703                     return hostClass.getName().replace(".", "/") + "$$StringConcat”;
>> 
>> Maybe you should use here the character based String#replace()-method as it is faster and
>> does not produce as much garbage as the CharSequence based method does.
> 
> Yes:
>  http://cr.openjdk.java.net/~shade/8149835/webrev.jdk.02/
>  http://cr.openjdk.java.net/~shade/8149835/webrev.langtools.01/
> 
> I have also changed to Lookup.IMPL_LOOKUP when looking up the method
> from U.defineAnonymousClass-loaded bytecode stub. This make the load
> sequence consistent with LambdaMetafactory.
> 
> It still passes JPRT, java/lang/String and jake build.
> 

+1

Paul.



More information about the core-libs-dev mailing list