> Classes compiled prior to the nestmate support will generate 
> `REF_invokeSpecial` if the implementation method is a private instance 
> method.   Since a lambda proxy class is a hidden class, a nestmate of the 
> host class, it can invoke the private implementation method but it has to use 
> `REF_invokeVirtual` or `REF_invokeInterface`.   In order to support the old 
> classes running on the new runtime, LMF implementation adjusts the reference 
> kind from `REF_invokeSpecial` to `REF_invokeVirtual/REF_invokeInterface`. 
> 
> This PR fixes the check properly to ensure the adjustment is only made if the 
> implementation method is private method in the host class.

Mandy Chung has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains five additional commits since 
the last revision:

 - Update test to test LMF with no dependency on javac behavior
 - Merge branch 'master' of https://github.com/openjdk/jdk into invokespecial
 - Merge branch 'invokespecial' of https://github.com/mlchung/jdk into 
invokespecial
 - remove filelist which was added accidentally
 - JDK-8274848: LambdaMetaFactory::metafactory on REF_invokeSpecial impl method 
has incorrect behavior

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/5901/files
  - new: https://git.openjdk.java.net/jdk/pull/5901/files/cfdd036e..c44a5910

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5901&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5901&range=01-02

  Stats: 29565 lines in 721 files changed: 21974 ins; 5102 del; 2489 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5901.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5901/head:pull/5901

PR: https://git.openjdk.java.net/jdk/pull/5901

Reply via email to