Special case reflective invocation of MethodHandle.invoke[Exact].

This commit is contained in:
jfrijters 2011-08-08 11:29:35 +00:00
Родитель 2a092d7049
Коммит 6486a0cf29
1 изменённых файлов: 40 добавлений и 0 удалений

Просмотреть файл

@ -2764,6 +2764,46 @@
<class name="java.lang.StackTraceElement">
<attribute type="System.SerializableAttribute" sig="()V" />
</class>
<class name="java.lang.invoke.MethodHandle">
<method name="invoke" sig="([Ljava.lang.Object;)Ljava.lang.Object;">
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
</method>
<method name="invokeExact" sig="([Ljava.lang.Object;)Ljava.lang.Object;">
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
</method>
<!-- NOTE Modifiers.Final and MethodAttributes.NewSlot is recognized by AotTypeWrapper.MapModifiers() as a magic combination that generates a non-virtual method -->
<method name="reflectionInvoke" sig="([Ljava.lang.Object;)Ljava.lang.Object;" modifiers="final" attributes="NewSlot">
<throws class="java.lang.Throwable" />
<attribute type="IKVM.Attributes.NameSigAttribute" sig="(Ljava.lang.String;Ljava.lang.String;)V">
<parameter>invoke</parameter>
<parameter>([Ljava.lang.Object;)Ljava.lang.Object;</parameter>
</attribute>
<attribute type="IKVM.Attributes.ModifiersAttribute" sig="(Lcli.IKVM.Attributes.Modifiers;)V">
<parameter>Public,Final,Native</parameter>
</attribute>
<body>
<ldstr value="MethodHandle.invoke cannot be invoked reflectively" />
<newobj class="java.lang.UnsupportedOperationException" name="&lt;init&gt;" sig="(Ljava.lang.String;)V" />
<throw />
</body>
</method>
<!-- NOTE Modifiers.Final and MethodAttributes.NewSlot is recognized by AotTypeWrapper.MapModifiers() as a magic combination that generates a non-virtual method -->
<method name="reflectionInvokeExact" sig="([Ljava.lang.Object;)Ljava.lang.Object;" modifiers="final" attributes="NewSlot">
<throws class="java.lang.Throwable" />
<attribute type="IKVM.Attributes.NameSigAttribute" sig="(Ljava.lang.String;Ljava.lang.String;)V">
<parameter>invokeExact</parameter>
<parameter>([Ljava.lang.Object;)Ljava.lang.Object;</parameter>
</attribute>
<attribute type="IKVM.Attributes.ModifiersAttribute" sig="(Lcli.IKVM.Attributes.Modifiers;)V">
<parameter>Public,Final,Native</parameter>
</attribute>
<body>
<ldstr value="MethodHandle.invokeExact cannot be invoked reflectively" />
<newobj class="java.lang.UnsupportedOperationException" name="&lt;init&gt;" sig="(Ljava.lang.String;)V" />
<throw />
</body>
</method>
</class>
<class name="java.lang.invoke.MethodHandleImpl$AllocateObject">
<method name="allocate" sig="()Ljava.lang.Object;">
<attribute type="System.Security.SecuritySafeCriticalAttribute" sig="()V" />