зеркало из https://github.com/mono/ikvm-fork.git
Special case reflective invocation of MethodHandle.invoke[Exact].
This commit is contained in:
Родитель
2a092d7049
Коммит
6486a0cf29
|
@ -2764,6 +2764,46 @@
|
||||||
<class name="java.lang.StackTraceElement">
|
<class name="java.lang.StackTraceElement">
|
||||||
<attribute type="System.SerializableAttribute" sig="()V" />
|
<attribute type="System.SerializableAttribute" sig="()V" />
|
||||||
</class>
|
</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="<init>" 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="<init>" sig="(Ljava.lang.String;)V" />
|
||||||
|
<throw />
|
||||||
|
</body>
|
||||||
|
</method>
|
||||||
|
</class>
|
||||||
<class name="java.lang.invoke.MethodHandleImpl$AllocateObject">
|
<class name="java.lang.invoke.MethodHandleImpl$AllocateObject">
|
||||||
<method name="allocate" sig="()Ljava.lang.Object;">
|
<method name="allocate" sig="()Ljava.lang.Object;">
|
||||||
<attribute type="System.Security.SecuritySafeCriticalAttribute" sig="()V" />
|
<attribute type="System.Security.SecuritySafeCriticalAttribute" sig="()V" />
|
||||||
|
|
Загрузка…
Ссылка в новой задаче