RFR: 8013635 Lambda: vm conditionally create bridges for generic signatures

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Fri Jun 21 01:04:47 PDT 2013


Karen,

It looks good.

Some minor comments below.

src/share/vm/classfile/defaultMethods.cpp

*  520 class GenericMethodFamily: public MethodFamily {
**  556 class StatefulMethodFamily: public ResourceObj {*
*  **743 class FindMethodsByErasedSig: public HierarchyVisitor<FindMethodsByErasedSig> {*

    Inconsistent with the style used in the file: need a space before the colon.

*  537   void print_on(outputStream* str) const {**
**  538     print_on(str, 0);**
**  539   }*

    This function already defined in the base class.


*  746   Thread* THREAD;*

    Is seems theTHREAD field is not used.


*  787         // methods in interfaces. This work because of single inheritance*

       work => works ?


  The indent at the lines 892-921 is wrong.


*1088   virtual bool path_has_shadow() {return found_shadow();}*

    A space is needed after "{" and before "}".



Thanks,
Serguei


On 6/20/13 1:18 PM, Karen Kinnear wrote:
> Please review:
> https://jbs.oracle.com/bugs/browse/JDK-8013635: BridgeMethodsLinearTest.java fails in
> Lambda nightly runs
>
> webrev: http://cr.openjdk.java.net/~acorn/8013635.1/webrev/
>
> This particular set of changes modifies the vm to conditionally handle generic signatures
> when processing default methods. Basically this code refactors the defaultMethods logic
> to work either with generic signatures or only with erased signatures.
>
> The flag: ParseGenericDefaults is set to "true" in this webrev to continue to work with
> the current javac and lambda metafactory components.
>
> The intention is to change ParseGenericDefaults to false and simultaneously change
> javac to generate bridges to handle generic signatures in interface methods, and
> the metafactory to no longer generate bridges.
> With the flag change, the vm will no longer generate bridges for generic
> signatures.
>
> A subsequent fix: 8012294 will completely remove the vm generic interface handling
> for jdk8.
>
> Please approve this change with both flag settings, so we can coordinate making
> those changes in the order that is least disruptive.
>
> Testing:
>
> I. hotspot-rt: ParseGenericDefaults=true:
> jprt
> vm.quick.testlist
> jdk-jtreg - in progress
> jck-lang, vm - in progress
>
> II. Lambda repo: ParseGenericDefaults=false:
> These two files, with other changes not currently needed - tested in lambda repository for a month
>     including tl nightlies and updated BridgeMethodsLinearTest
>
> III. Current hotspot-rt with these two files only and ParseGenericDefaults=false
> with jdk8tl repository with 8015402: metafactory changes and 8013789: javac changes:
>
> vm.quick.testlist - in progress
> jdk-jtreg - in progress
> jck-lang, vm - in progress
>
> thanks,
> Karen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130621/3f3e8bc8/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list