Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2011-08-08 15:29:35 +0400
committerjfrijters <jfrijters>2011-08-08 15:29:35 +0400
commit6486a0cf2926efc27643e79d0cdba89ef980ab44 (patch)
treed647995ede5bb2490cb5a96b4bc124b13c47258d /openjdk
parent2a092d7049f4138ce1b43da1fda8cb96a1e68357 (diff)
Special case reflective invocation of MethodHandle.invoke[Exact].
Diffstat (limited to 'openjdk')
-rw-r--r--openjdk/map.xml40
1 files changed, 40 insertions, 0 deletions
diff --git a/openjdk/map.xml b/openjdk/map.xml
index 38fc5cda..016bac28 100644
--- a/openjdk/map.xml
+++ b/openjdk/map.xml
@@ -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" />