[8] Review request for 8004970, 8004971, and 8006817: implement serialization in lambda metafactory and metafactory fix

Remi Forax forax at univ-mlv.fr
Fri Feb 15 15:40:48 PST 2013


On 02/12/2013 04:23 PM, Robert Field wrote:
> Please review the fixes for CRs:
>
>         http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004970
>
>         http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004971
>
>         http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006817
>
>
>
> Webrev:
>
>         http://cr.openjdk.java.net/~rfield/8004970
>
> Thank,
> Robert
>
>

Hi Robert,
few comments,

in MethodHandleInfo:
  - getReferenceKindString should not be public, it's a detail of 
implementation.

in InnerClassLambdaMetaFactory:
  - spinInnerClass() should return a simple Class<?>.
  - generateWriteReplace: there is still a mv.dup() that should be 
replaced by
mv.visitInsn(DUP);

in AbstractValidatingLambdaMetafactory:
   - field markerInterfaces should be declared as Class<?>[]
     (you can replace all Class by Class<?>)

in SerializedLambda:
   - I think it should declare a serialUID, so you don't need a ad-hoc 
versioning.
     (to answer to the question line 235)
   - Also does the constructor
SerializedLambda(Class ,MethodHandle,MethodHandle,MethodType,Object[])
     still used ?

in TypeConvertingMethodAdapter:
   - at the end, load/dup/areturn/getfield should be replaced by their 
corresponding
     code inlined. I don't see a real interest to these too small method.
     Only iconst is really complex so worth a dedicated method.

cheers,
Rémi





More information about the lambda-dev mailing list