RFR 8042235: redefining method used by multiple MethodHandles crashes VM

Lois Foltan lois.foltan at oracle.com
Wed Nov 19 13:13:32 UTC 2014


Hi Coleen,

I think this looks good and I actually like the implementation better 
than the former indexing approach.  One minor comment:

src/share/vm/prims/methodHandles.cpp
   - line #278 if statement conditional, the expression 
"m->method_holder()" could be changed to "m_klass"
     which is set at the top of the routine to contain 
m->method_holder().  m_klass seems to be used
     consistently in that manner throughout the routine.

Lois

On 11/17/2014 5:49 PM, Coleen Phillimore wrote:
> Summary: note all MemberNames created on internal list for adjusting 
> method entries.
>
> The JVM MemberNameTable code will push all member names on the list 
> rather than trying to index by method_idnum.  The code to look up 
> MemberName types wasn't used so was removed.  Class redefinition 
> iterates through the table sequentially to update the Method* pointers 
> in saved member names.
>
> This change will work with David Chase's change to the Java code for 
> bug 8013267 without the extra code dealing with class redefinition.
>
> Tested with vm.quick.testlist, jck tests and jtreg tests, including 
> the mlvm tests that failed in the bug report.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8042235/
> bug link https://bugs.openjdk.java.net/browse/JDK-8042235
>
> Thanks,
> Coleen



More information about the hotspot-dev mailing list