зеркало из https://github.com/mono/ikvm-fork.git
1923 строки
98 KiB
XML
1923 строки
98 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!--
|
|
Copyright (C) 2002-2008 Jeroen Frijters
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any damages
|
|
arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
including commercial applications, and to alter it and redistribute it
|
|
freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you must not
|
|
claim that you wrote the original software. If you use this software
|
|
in a product, an acknowledgment in the product documentation would be
|
|
appreciated but is not required.
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
misrepresented as being the original software.
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
|
|
Jeroen Frijters
|
|
jeroen@frijters.net
|
|
|
|
-->
|
|
<root>
|
|
<assembly>
|
|
<class name="java.lang.Object" shadows="System.Object" modifiers="public">
|
|
<constructor sig="()V" modifiers="public" />
|
|
<method name="notifyAll" sig="()V" modifiers="public final">
|
|
<body>
|
|
<ldarg_0 />
|
|
<call type="System.Threading.Monitor" name="PulseAll" sig="(Ljava.lang.Object;)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="notify" sig="()V" modifiers="public final">
|
|
<body>
|
|
<ldarg_0 />
|
|
<call type="System.Threading.Monitor" name="Pulse" sig="(Ljava.lang.Object;)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="wait" sig="()V" modifiers="public final">
|
|
<throws class="java.lang.InterruptedException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldc_i4_0 />
|
|
<conv_i8 />
|
|
<ldc_i4_0 />
|
|
<call class="java.lang.Thread" name="objectWait" sig="(Ljava.lang.Object;JI)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="wait" sig="(J)V" modifiers="public final">
|
|
<parameter name="timeout" />
|
|
<throws class="java.lang.InterruptedException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldc_i4_0 />
|
|
<call class="java.lang.Thread" name="objectWait" sig="(Ljava.lang.Object;JI)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="wait" sig="(JI)V" modifiers="public final">
|
|
<parameter name="timeout" />
|
|
<parameter name="nanos" />
|
|
<throws class="java.lang.InterruptedException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<call class="java.lang.Thread" name="objectWait" sig="(Ljava.lang.Object;JI)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getClass" sig="()Ljava.lang.Class;" modifiers="public final">
|
|
<attribute type="IKVM.Attributes.SignatureAttribute" sig="(Ljava.lang.String;)V">
|
|
<parameter>()Ljava/lang/Class<+Ljava/lang/Object;>;</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="ikvm.runtime.Util" name="getClassFromObject" sig="(Ljava.lang.Object;)Ljava.lang.Class;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="clone" sig="()Ljava.lang.Object;" modifiers="protected">
|
|
<throws class="java.lang.CloneNotSupportedException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<isinst class="java.lang.Cloneable" />
|
|
<brtrue name="ok" />
|
|
<newobj class="java.lang.CloneNotSupportedException" name="<init>" sig="()V" />
|
|
<throw />
|
|
<label name="ok" />
|
|
<ldarg_0 />
|
|
<call type="System.Object" name="MemberwiseClone" sig="()Ljava.lang.Object;" />
|
|
<ret />
|
|
</body>
|
|
<alternateBody>
|
|
<ldarg_0 />
|
|
<isinst type="System.Array" />
|
|
<dup />
|
|
<brfalse name="not_array" />
|
|
<call type="System.Array" name="Clone" sig="()Ljava.lang.Object;" />
|
|
<ret />
|
|
<label name="not_array" />
|
|
<pop />
|
|
<ldarg_0 />
|
|
<isinst class="java.lang.Cloneable" />
|
|
<brfalse name="not_cloneable" />
|
|
<!--
|
|
This means we're Cloneable, but not derived from java.lang.Object or java.lang.Throwable.
|
|
It also means that we must have been invoked thru reflection (or by code in the java.lang package),
|
|
so it is OK to use reflection to call Object.MemberwiseClone().
|
|
-->
|
|
<ldtoken type="System.Object" />
|
|
<call type="System.Type" name="GetTypeFromHandle" sig="(Lcli.System.RuntimeTypeHandle;)Lcli.System.Type;" />
|
|
<ldstr value="MemberwiseClone" />
|
|
<ldc_i4 value="36" />
|
|
<ldnull />
|
|
<ldsfld type="System.Type" name="EmptyTypes" sig="[Lcli.SystemType;" />
|
|
<ldnull />
|
|
<callvirt type="System.Type" name="GetMethod" sig="(Ljava.lang.String;Lcli.System.Reflection.BindingFlags;Lcli.System.Reflection.Binder;[Lcli.System.Type;[Lcli.System.Reflection.ParameterModifier;)Lcli.System.Reflection.MethodInfo;" />
|
|
<ldarg_0 />
|
|
<ldnull />
|
|
<callvirt type="System.Reflection.MethodInfo" name="Invoke" sig="(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;" />
|
|
<ret />
|
|
<label name="not_cloneable" />
|
|
<newobj class="java.lang.CloneNotSupportedException" name="<init>" sig="()V" />
|
|
<throw />
|
|
</alternateBody>
|
|
</method>
|
|
<method name="toStringImpl" sig="(Ljava.lang.Object;)Ljava.lang.String;" modifiers="private static">
|
|
<body>
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Object" name="getClass" sig="()Ljava.lang.Class;" />
|
|
<call class="java.lang.Class" name="getName" sig="()Ljava.lang.String;" />
|
|
<ldstr value="@" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Object" name="hashCode" sig="()I" />
|
|
<call class="java.lang.Integer" name="toHexString" sig="(I)Ljava.lang.String;" />
|
|
<call type="System.String" name="Concat" sig="(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="toString" sig="()Ljava.lang.String;" modifiers="public">
|
|
<override name="ToString" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="java.lang.Object" name="toStringImpl" sig="(Ljava.lang.Object;)Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
<alternateBody>
|
|
<ldarg_0 />
|
|
<isinst type="System.Array" />
|
|
<brfalse name="skip" />
|
|
<ldarg_0 />
|
|
<call class="java.lang.Object" name="toStringImpl" sig="(Ljava.lang.Object;)Ljava.lang.String;" />
|
|
<br name="end" />
|
|
<label name="skip" />
|
|
<ldarg_0 />
|
|
<callvirt type="System.Object" name="ToString" sig="()Ljava.lang.String;" />
|
|
<label name="end" />
|
|
<ret />
|
|
</alternateBody>
|
|
<nonvirtualAlternateBody>
|
|
<ldarg_0 />
|
|
<call class="java.lang.Object" name="toStringImpl" sig="(Ljava.lang.Object;)Ljava.lang.String;" />
|
|
<ret />
|
|
</nonvirtualAlternateBody>
|
|
</method>
|
|
<method name="hashCode" sig="()I" modifiers="public">
|
|
<override name="GetHashCode" />
|
|
<nonvirtualAlternateBody>
|
|
<ldarg_0 />
|
|
<call type="System.Runtime.CompilerServices.RuntimeHelpers" name="GetHashCode" sig="(Ljava.lang.Object;)I" />
|
|
<ret />
|
|
</nonvirtualAlternateBody>
|
|
</method>
|
|
<method name="equals" sig="(Ljava.lang.Object;)Z" modifiers="public">
|
|
<parameter name="obj" />
|
|
<override name="Equals" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
<alternateBody>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<callvirt type="System.Object" name="Equals" sig="(Ljava.lang.Object;)Z" />
|
|
<ret />
|
|
</alternateBody>
|
|
<nonvirtualAlternateBody>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</nonvirtualAlternateBody>
|
|
</method>
|
|
<method name="finalize" sig="()V" modifiers="protected">
|
|
<throws class="java.lang.Throwable" />
|
|
<!-- NOTE we don't override Finalize, because that would be bad for performance,
|
|
instead, the compiler contains a hack to lazily override Finalize when a class
|
|
overrides our finalize
|
|
TODO consider adding code to constructor (in debug builds) to detect that someone
|
|
has overriden our finalize from another .NET language (if no intermediate Java base class
|
|
has overriden finalize, the lazy override of Object.Finalize hasn't kicked in and finalize
|
|
will never be called)
|
|
-->
|
|
<body>
|
|
<ldarg_0 />
|
|
<call type="System.Object" name="Finalize" sig="()V" />
|
|
<ret />
|
|
</body>
|
|
<alternateBody>
|
|
<!-- if code in the java.lang package explicitly invokes finalize on a non java.lang.Object
|
|
derived object we just ignore it -->
|
|
<ret />
|
|
</alternateBody>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.String" shadows="System.String" modifiers="public final">
|
|
<implements class="java.io.Serializable" />
|
|
<implements class="java.lang.Comparable" />
|
|
<implements class="java.lang.CharSequence" />
|
|
<attribute type="IKVM.Attributes.SignatureAttribute" sig="(Ljava.lang.String;)V">
|
|
<parameter>Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/String;>;Ljava/lang/CharSequence;</parameter>
|
|
</attribute>
|
|
<field name="serialVersionUID" sig="J" modifiers="private static final" constant="-6849794470754667710" />
|
|
<constructor sig="()V" modifiers="public">
|
|
<alternateBody>
|
|
<ldstr value="" />
|
|
<call type="System.String" name="Copy" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
<ret />
|
|
</alternateBody>
|
|
</constructor>
|
|
<constructor sig="([C)V" modifiers="public">
|
|
<parameter name="value" />
|
|
<alternateBody>
|
|
<!-- force a NullPointerException if the array is null -->
|
|
<ldarg_0 />
|
|
<ldlen />
|
|
<pop />
|
|
<ldarg_0 />
|
|
<newobj type="System.String" name=".ctor" sig="([C)V" />
|
|
<ret />
|
|
</alternateBody>
|
|
</constructor>
|
|
<constructor sig="([CII)V" modifiers="public">
|
|
<parameter name="value" />
|
|
<parameter name="offset" />
|
|
<parameter name="count" />
|
|
</constructor>
|
|
<!-- Package private constructor, that we redirect to static helper -->
|
|
<constructor sig="(II[C)V" modifiers="">
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="(II[C)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.String;)V" modifiers="public">
|
|
<parameter name="original" />
|
|
<redirect class="System.String, mscorlib" name="Copy" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.StringBuffer;)V" modifiers="public">
|
|
<parameter name="buffer" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="(Ljava.lang.StringBuffer;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.StringBuilder;)V" modifiers="public">
|
|
<parameter name="builder" />
|
|
<alternateBody>
|
|
<ldarg_0 />
|
|
<ldfld class="java.lang.StringBuilder" name="value" sig="[C" />
|
|
<ldc_i4_0 />
|
|
<ldarg_0 />
|
|
<ldfld class="java.lang.StringBuilder" name="count" sig="I" />
|
|
<newobj type="System.String" name=".ctor" sig="([CII)V" />
|
|
<ret />
|
|
</alternateBody>
|
|
</constructor>
|
|
<constructor sig="([B)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([B)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BI)V" modifiers="public">
|
|
<parameter name="ascii" />
|
|
<parameter name="hibyte" />
|
|
<attribute type="System.ObsoleteAttribute" sig="()V" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BI)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BII)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<parameter name="offset" />
|
|
<parameter name="length" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BII)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BIII)V" modifiers="public">
|
|
<parameter name="ascii" />
|
|
<parameter name="hibyte" />
|
|
<parameter name="offset" />
|
|
<parameter name="count" />
|
|
<attribute type="System.ObsoleteAttribute" sig="()V" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BIII)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BLjava.lang.String;)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<parameter name="charsetName" />
|
|
<throws class="java.io.UnsupportedEncodingException" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BLjava.lang.String;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BIILjava.lang.String;)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<parameter name="offset" />
|
|
<parameter name="length" />
|
|
<parameter name="charsetName" />
|
|
<throws class="java.io.UnsupportedEncodingException" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BIILjava.lang.String;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([III)V" modifiers="public">
|
|
<parameter name="codePoints" />
|
|
<parameter name="offset" />
|
|
<parameter name="count" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([III)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BIILjava.nio.charset.Charset;)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<parameter name="offset" />
|
|
<parameter name="length" />
|
|
<parameter name="charset" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BIILjava.nio.charset.Charset;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<constructor sig="([BLjava.nio.charset.Charset;)V" modifiers="public">
|
|
<parameter name="bytes" />
|
|
<parameter name="charset" />
|
|
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BLjava.nio.charset.Charset;)Ljava.lang.String;" />
|
|
</constructor>
|
|
<method name="hashCode" sig="()I" modifiers="public">
|
|
<redirect class="java.lang.StringHelper" name="hashCode" type="static" sig="(Lcli.System.String;)I" />
|
|
</method>
|
|
<!-- we have a toString here to make sure that it shows up as a declared method in reflection -->
|
|
<method name="toString" sig="()Ljava.lang.String;" modifiers="public" />
|
|
<!-- we have an equals here to make sure that it shows up as a declared method in reflection -->
|
|
<method name="equals" sig="(Ljava.lang.Object;)Z" modifiers="public">
|
|
<parameter name="anObject" />
|
|
</method>
|
|
<method name="valueOf" sig="(Z)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="b" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(I)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="i" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(J)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="l" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(C)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="c" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(F)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="f" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(D)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="d" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="([C)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="data" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="([CII)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="data" />
|
|
<parameter name="offset" />
|
|
<parameter name="count" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="valueOf" sig="(Ljava.lang.Object;)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="obj" />
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="substring" sig="(I)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="beginIndex" />
|
|
<redirect name="Substring" />
|
|
</method>
|
|
<method name="length" sig="()I" modifiers="public">
|
|
<redirect name="get_Length" />
|
|
</method>
|
|
<method name="charAt" sig="(I)C" modifiers="public" nonullcheck="true">
|
|
<parameter name="index" />
|
|
<body>
|
|
<ldarg_1 />
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<bge_un name="throw" />
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<ret />
|
|
<label name="throw" />
|
|
<newobj class="java.lang.StringIndexOutOfBoundsException" name="<init>" sig="()V" />
|
|
<throw />
|
|
</body>
|
|
</method>
|
|
<method name="substring" sig="(II)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="beginIndex" />
|
|
<parameter name="endIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="indexOf" sig="(I)I" modifiers="public">
|
|
<parameter name="ch" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;I)I" />
|
|
</method>
|
|
<method name="indexOf" sig="(II)I" modifiers="public" nonullcheck="true">
|
|
<parameter name="ch" />
|
|
<parameter name="fromIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II)I" />
|
|
</method>
|
|
<method name="indexOf" sig="(Ljava.lang.String;)I" modifiers="public">
|
|
<parameter name="str" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
|
|
</method>
|
|
<method name="indexOf" sig="(Ljava.lang.String;I)I" modifiers="public">
|
|
<parameter name="str" />
|
|
<parameter name="fromIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;I)I" />
|
|
</method>
|
|
<!-- These three methods are package private and used by (Abstract)StringBuilder/Buffer -->
|
|
<method name="getChars" sig="([CI)V" modifiers="">
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;[CI)V" />
|
|
</method>
|
|
<method name="indexOf" sig="([CII[CIII)I" modifiers="static">
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<method name="lastIndexOf" sig="([CII[CIII)I" modifiers="static">
|
|
<redirect class="java.lang.StringHelper" />
|
|
</method>
|
|
<!-- end of package private methods used by (Abstract)StringBuilder/Buffer -->
|
|
<method name="lastIndexOf" sig="(I)I" modifiers="public">
|
|
<parameter name="ch" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;I)I" />
|
|
</method>
|
|
<method name="lastIndexOf" sig="(II)I" modifiers="public">
|
|
<parameter name="ch" />
|
|
<parameter name="fromIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II)I" />
|
|
</method>
|
|
<method name="lastIndexOf" sig="(Ljava.lang.String;)I" modifiers="public">
|
|
<parameter name="str" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
|
|
</method>
|
|
<method name="lastIndexOf" sig="(Ljava.lang.String;I)I" modifiers="public">
|
|
<parameter name="str" />
|
|
<parameter name="fromIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;I)I" />
|
|
</method>
|
|
<method name="toCharArray" sig="()[C" modifiers="public">
|
|
<redirect name="ToCharArray" />
|
|
</method>
|
|
<method name="getChars" sig="(II[CI)V" modifiers="public">
|
|
<parameter name="srcBegin" />
|
|
<parameter name="srcEnd" />
|
|
<parameter name="dst" />
|
|
<parameter name="dstBegin" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II[CI)V" />
|
|
</method>
|
|
<method name="startsWith" sig="(Ljava.lang.String;)Z" modifiers="public" nonullcheck="true">
|
|
<parameter name="prefix" />
|
|
<body>
|
|
<!--
|
|
if (this.Length >= prefix.Length)
|
|
{
|
|
for (int i = 0; i < prefix.Length; i++)
|
|
{
|
|
if (this[i] != prefix[i])
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
-->
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<blt name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<stloc name="i" type="System.Int32" />
|
|
<br name="start_loop" />
|
|
<label name="next" />
|
|
<ldarg_0 />
|
|
<ldloc name="i" />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<ldarg_1 />
|
|
<ldloc name="i" />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<bne_un name="ret_false" />
|
|
<ldloc name="i" />
|
|
<ldc_i4_1 />
|
|
<add />
|
|
<stloc name="i" type="System.Int32" />
|
|
<label name="start_loop" />
|
|
<ldloc name="i" />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<blt name="next" />
|
|
<ldc_i4_1 />
|
|
<ret />
|
|
<label name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="startsWith" sig="(Ljava.lang.String;I)Z" modifiers="public" nonullcheck="true">
|
|
<parameter name="prefix" />
|
|
<parameter name="toffset" />
|
|
<body>
|
|
<!--
|
|
if (toffset >= 0
|
|
&& toffset <= this.Length
|
|
&& this.Length - toffset >= prefix.Length)
|
|
{
|
|
for (int i = 0; i < prefix.Length; i++)
|
|
{
|
|
if (this[i + toffset] != prefix[i])
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
-->
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<ldarg_2 />
|
|
<blt_un name="ret_false" />
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<ldarg_2 />
|
|
<sub />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<blt name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<stloc name="i" type="System.Int32" />
|
|
<br name="start_loop" />
|
|
<label name="next" />
|
|
<ldarg_0 />
|
|
<ldloc name="i" />
|
|
<ldarg_2 />
|
|
<add />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<ldarg_1 />
|
|
<ldloc name="i" />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<bne_un name="ret_false" />
|
|
<ldloc name="i" />
|
|
<ldc_i4_1 />
|
|
<add />
|
|
<stloc name="i" type="System.Int32" />
|
|
<label name="start_loop" />
|
|
<ldloc name="i" />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<blt name="next" />
|
|
<ldc_i4_1 />
|
|
<ret />
|
|
<label name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="endsWith" sig="(Ljava.lang.String;)Z" modifiers="public" nonullcheck="true">
|
|
<parameter name="suffix" />
|
|
<body>
|
|
<!--
|
|
int j = this.Length - suffix.Length;
|
|
if (j >= 0)
|
|
{
|
|
for (int i = 0; i < suffix.Length; i++)
|
|
{
|
|
if (this[j++] != suffix[i])
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
-->
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<sub />
|
|
<stloc name="j" type="System.Int32" />
|
|
<ldloc name="j" />
|
|
<ldc_i4_0 />
|
|
<blt name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<stloc name="i" type="System.Int32" />
|
|
<br name="start_loop" />
|
|
<label name="next" />
|
|
<ldarg_0 />
|
|
<ldloc name="j" />
|
|
<dup />
|
|
<ldc_i4_1 />
|
|
<add />
|
|
<stloc name="j" type="System.Int32" />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<ldarg_1 />
|
|
<ldloc name="i" />
|
|
<callvirt type="System.String" name="get_Chars" sig="(I)C" />
|
|
<bne_un name="ret_false" />
|
|
<ldloc name="i" />
|
|
<ldc_i4_1 />
|
|
<add />
|
|
<stloc name="i" type="System.Int32" />
|
|
<label name="start_loop" />
|
|
<ldloc name="i" />
|
|
<ldarg_1 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<blt name="next" />
|
|
<ldc_i4_1 />
|
|
<ret />
|
|
<label name="ret_false" />
|
|
<ldc_i4_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="toUpperCase" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="toUpperCase" sig="(Ljava.util.Locale;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="locale" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.util.Locale;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="toLowerCase" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="toLowerCase" sig="(Ljava.util.Locale;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="locale" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.util.Locale;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="compareToIgnoreCase" sig="(Ljava.lang.String;)I" modifiers="public">
|
|
<parameter name="str" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
|
|
</method>
|
|
<method name="equalsIgnoreCase" sig="(Ljava.lang.String;)Z" modifiers="public">
|
|
<parameter name="anotherString" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)Z" />
|
|
</method>
|
|
<method name="intern" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect type="static" name="Intern" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="compareTo" sig="(Ljava.lang.String;)I" modifiers="public">
|
|
<parameter name="anotherString" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
|
|
</method>
|
|
<method name="compareTo" sig="(Ljava.lang.Object;)I" modifiers="public">
|
|
<parameter name="o" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<castclass type="System.String" />
|
|
<call class="java.lang.StringHelper" name="compareTo" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="replace" sig="(CC)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="oldChar" />
|
|
<parameter name="newChar" />
|
|
<redirect name="Replace" />
|
|
</method>
|
|
<method name="getBytes" sig="()[B" modifiers="public">
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)[B" />
|
|
</method>
|
|
<method name="getBytes" sig="(Ljava.lang.String;)[B" modifiers="public">
|
|
<parameter name="charsetName" />
|
|
<throws class="java.io.UnsupportedEncodingException" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)[B" />
|
|
</method>
|
|
<method name="subSequence" sig="(II)Ljava.lang.CharSequence;" modifiers="public">
|
|
<parameter name="beginIndex" />
|
|
<parameter name="endIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" name="substring" sig="(Lcli.System.String;II)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="trim" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="regionMatches" sig="(ZILjava.lang.String;II)Z" modifiers="public">
|
|
<parameter name="ignoreCase" />
|
|
<parameter name="toffset" />
|
|
<parameter name="other" />
|
|
<parameter name="ooffset" />
|
|
<parameter name="len" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;ZILjava.lang.String;II)Z" />
|
|
</method>
|
|
<method name="regionMatches" sig="(ILjava.lang.String;II)Z" modifiers="public">
|
|
<parameter name="toffset" />
|
|
<parameter name="other" />
|
|
<parameter name="ooffset" />
|
|
<parameter name="len" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;ILjava.lang.String;II)Z" />
|
|
</method>
|
|
<method name="getBytes" sig="(II[BI)V" modifiers="public">
|
|
<parameter name="srcBegin" />
|
|
<parameter name="srcEnd" />
|
|
<parameter name="dst" />
|
|
<parameter name="dstBegin" />
|
|
<attribute type="System.ObsoleteAttribute" sig="()V" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;II[BI)V" />
|
|
</method>
|
|
<method name="concat" sig="(Ljava.lang.String;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="str" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="contains" sig="(Ljava.lang.CharSequence;)Z" modifiers="public">
|
|
<parameter name="s" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.CharSequence;)Z" />
|
|
</method>
|
|
<method name="codePointAt" sig="(I)I" modifiers="public">
|
|
<parameter name="index" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;I)I" />
|
|
</method>
|
|
<method name="codePointBefore" sig="(I)I" modifiers="public">
|
|
<parameter name="index" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;I)I" />
|
|
</method>
|
|
<method name="codePointCount" sig="(II)I" modifiers="public">
|
|
<parameter name="beginIndex" />
|
|
<parameter name="endIndex" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;II)I" />
|
|
</method>
|
|
<method name="offsetByCodePoints" sig="(II)I" modifiers="public">
|
|
<parameter name="index" />
|
|
<parameter name="codePointOffset" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;II)I" />
|
|
</method>
|
|
<method name="contentEquals" sig="(Ljava.lang.CharSequence;)Z" modifiers="public">
|
|
<parameter name="cs" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.CharSequence;)Z" />
|
|
</method>
|
|
<method name="contentEquals" sig="(Ljava.lang.StringBuffer;)Z" modifiers="public">
|
|
<parameter name="sb" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<callvirt class="java.lang.StringBuffer" name="toString" sig="()Ljava.lang.String;" />
|
|
<callvirt type="System.String" name="Equals" sig="(Ljava.lang.String;)Z" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="replace" sig="(Ljava.lang.CharSequence;Ljava.lang.CharSequence;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="target" />
|
|
<parameter name="replacement" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.CharSequence;Ljava.lang.CharSequence;)Ljava.lang.String;" />
|
|
</method>
|
|
<method name="matches" sig="(Ljava.lang.String;)Z" modifiers="public">
|
|
<parameter name="regex" />
|
|
<body>
|
|
<ldarg_1 />
|
|
<ldarg_0 />
|
|
<call class="java.util.regex.Pattern" name="matches" sig="(Ljava.lang.String;Ljava.lang.CharSequence;)Z" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="replaceAll" sig="(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="regex" />
|
|
<parameter name="replacement" />
|
|
<body>
|
|
<ldarg_1 />
|
|
<call class="java.util.regex.Pattern" name="compile" sig="(Ljava.lang.String;)Ljava.util.regex.Pattern;" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.util.regex.Pattern" name="matcher" sig="(Ljava.lang.CharSequence;)Ljava.util.regex.Matcher;" />
|
|
<ldarg_2 />
|
|
<callvirt class="java.util.regex.Matcher" name="replaceAll" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="replaceFirst" sig="(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;" modifiers="public">
|
|
<parameter name="regex" />
|
|
<parameter name="replacement" />
|
|
<body>
|
|
<ldarg_1 />
|
|
<call class="java.util.regex.Pattern" name="compile" sig="(Ljava.lang.String;)Ljava.util.regex.Pattern;" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.util.regex.Pattern" name="matcher" sig="(Ljava.lang.CharSequence;)Ljava.util.regex.Matcher;" />
|
|
<ldarg_2 />
|
|
<callvirt class="java.util.regex.Matcher" name="replaceFirst" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="split" sig="(Ljava.lang.String;)[Ljava.lang.String;" modifiers="public">
|
|
<parameter name="regex" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldc_i4_0 />
|
|
<callvirt class="java.lang.String" name="split" sig="(Ljava.lang.String;I)[Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="split" sig="(Ljava.lang.String;I)[Ljava.lang.String;" modifiers="public">
|
|
<parameter name="regex" />
|
|
<parameter name="limit" />
|
|
<body>
|
|
<ldarg_1 />
|
|
<call class="java.util.regex.Pattern" name="compile" sig="(Ljava.lang.String;)Ljava.util.regex.Pattern;" />
|
|
<ldarg_0 />
|
|
<ldarg_2 />
|
|
<callvirt class="java.util.regex.Pattern" name="split" sig="(Ljava.lang.CharSequence;I)[Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="copyValueOf" sig="([C)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="data" />
|
|
<body>
|
|
<!-- force a NullPointerException if the array is null -->
|
|
<ldarg_0 />
|
|
<ldlen />
|
|
<pop />
|
|
<ldarg_0 />
|
|
<newobj type="System.String" name=".ctor" sig="([C)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="copyValueOf" sig="([CII)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="data" />
|
|
<parameter name="offset" />
|
|
<parameter name="count" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<newobj type="System.String" name=".ctor" sig="([CII)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="format" sig="(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="format" />
|
|
<parameter name="args">
|
|
<attribute type="System.ParamArrayAttribute" sig="()V" />
|
|
</parameter>
|
|
<body>
|
|
<newobj class="java.util.Formatter" name="<init>" sig="()V" />
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<callvirt class="java.util.Formatter" name="format" sig="(Ljava.lang.String;[Ljava.lang.Object;)Ljava.util.Formatter;" />
|
|
<callvirt class="java.util.Formatter" name="toString" sig="()Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="format" sig="(Ljava.util.Locale;Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.String;" modifiers="public static">
|
|
<parameter name="l" />
|
|
<parameter name="format" />
|
|
<parameter name="args">
|
|
<attribute type="System.ParamArrayAttribute" sig="()V" />
|
|
</parameter>
|
|
<body>
|
|
<ldarg_0 />
|
|
<newobj class="java.util.Formatter" name="<init>" sig="(Ljava.util.Locale;)V" />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<callvirt class="java.util.Formatter" name="format" sig="(Ljava.lang.String;[Ljava.lang.Object;)Ljava.util.Formatter;" />
|
|
<callvirt class="java.util.Formatter" name="toString" sig="()Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="isEmpty" sig="()Z" modifiers="public">
|
|
<body>
|
|
<ldarg_0 />
|
|
<callvirt type="System.String" name="get_Length" sig="()I" />
|
|
<ldc_i4_0 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getBytes" sig="(Ljava.nio.charset.Charset;)[B" modifiers="public">
|
|
<parameter name="charset" />
|
|
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.nio.charset.Charset;)[B" />
|
|
</method>
|
|
<field name="CASE_INSENSITIVE_ORDER" sig="Ljava.util.Comparator;" modifiers="public static final">
|
|
<attribute type="IKVM.Attributes.SignatureAttribute" sig="(Ljava.lang.String;)V">
|
|
<parameter>Ljava/util/Comparator<Ljava/lang/String;>;</parameter>
|
|
</attribute>
|
|
</field>
|
|
<!-- TODO mark this method as BeforeFieldInit (and benchmark to see if that is faster) -->
|
|
<clinit>
|
|
<body>
|
|
<ldnull />
|
|
<newobj class="java.lang.String$CaseInsensitiveComparator" name="<init>" sig="(Ljava.lang.String$1;)V" />
|
|
<stsfld class="java.lang.String" name="CASE_INSENSITIVE_ORDER" sig="Ljava.util.Comparator;" />
|
|
<ret />
|
|
</body>
|
|
</clinit>
|
|
</class>
|
|
<class name="java.lang.Throwable" shadows="System.Exception" modifiers="public">
|
|
<implements class="java.io.Serializable" />
|
|
<field name="serialVersionUID" sig="J" modifiers="private static final" constant="-3042686055658047285" />
|
|
<field name="serialPersistentFields" sig="[Ljava.io.ObjectStreamField;" modifiers="private static final" />
|
|
<field name="suppressFillInStackTrace" sig="Z" modifiers="private static">
|
|
<attribute type="System.ThreadStaticAttribute" sig="()V" />
|
|
</field>
|
|
<clinit>
|
|
<body>
|
|
<call class="java.lang.ExceptionHelper" name="getPersistentFields" sig="()[Ljava.io.ObjectStreamField;" />
|
|
<stsfld class="java.lang.Throwable" name="serialPersistentFields" sig="[Ljava.io.ObjectStreamField;" />
|
|
<ret />
|
|
</body>
|
|
</clinit>
|
|
<method name="__<suppressFillInStackTrace>" sig="()V" modifiers="public static">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldc_i4_1 />
|
|
<stsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="__mapImpl" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" modifiers="static">
|
|
<body>
|
|
<!-- this emits the conversion code based on the <exceptionMappings /> defined below -->
|
|
<exceptionMapping />
|
|
</body>
|
|
</method>
|
|
<method name="__<map>" sig="(Ljava.lang.Throwable;Z)Ljava.lang.Throwable;" modifiers="public static">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="MapExceptionFast" sig="(Ljava.lang.Throwable;Z)Ljava.lang.Throwable;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="__<map>" sig="(Ljava.lang.Throwable;Lcli.System.Type;Z)Ljava.lang.Throwable;" modifiers="public static">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<call class="java.lang.ExceptionHelper" name="MapException" sig="(Ljava.lang.Throwable;Lcli.System.Type;Z)Ljava.lang.Throwable;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="__<unmap>" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" modifiers="public static">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="java.lang.ExceptionHelper" name="UnmapException" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="readObject" sig="(Ljava.io.ObjectInputStream;)V" modifiers="private">
|
|
<throws class="java.io.IOException" />
|
|
<throws class="java.lang.ClassNotFoundException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="readObject" sig="(Ljava.lang.Throwable;Ljava.io.ObjectInputStream;)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="writeObject" sig="(Ljava.io.ObjectOutputStream;)V" modifiers="private">
|
|
<throws class="java.io.IOException" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="writeObject" sig="(Ljava.lang.Throwable;Ljava.io.ObjectOutputStream;)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<constructor sig="()V" modifiers="public">
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="java.lang.ExceptionHelper" name="get_NullString" sig="()Ljava.lang.String;" />
|
|
<call type="System.Exception" name=".ctor" sig="(Ljava.lang.String;)V" />
|
|
<!-- Start fillInStackTrace call -->
|
|
<ldsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<ldc_i4_0 />
|
|
<stsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<brtrue name="skipFillInStackTrace" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Throwable" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skipFillInStackTrace" />
|
|
<!-- End fillInStackTrace call -->
|
|
<ret />
|
|
</body>
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.String;)V" modifiers="public">
|
|
<parameter name="message" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="FilterMessage" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
<call type="System.Exception" name=".ctor" sig="(Ljava.lang.String;)V" />
|
|
<!-- Start fillInStackTrace call -->
|
|
<ldsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<ldc_i4_0 />
|
|
<stsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<brtrue name="skipFillInStackTrace" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Throwable" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skipFillInStackTrace" />
|
|
<!-- End fillInStackTrace call -->
|
|
<ret />
|
|
</body>
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" modifiers="public">
|
|
<parameter name="message" />
|
|
<parameter name="cause" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="FilterMessage" sig="(Ljava.lang.String;)Ljava.lang.String;" />
|
|
<ldarg_2 />
|
|
<call type="System.Exception" name=".ctor" sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" />
|
|
<!-- Start fillInStackTrace call -->
|
|
<ldsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<ldc_i4_0 />
|
|
<stsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<brtrue name="skipFillInStackTrace" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Throwable" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skipFillInStackTrace" />
|
|
<!-- End fillInStackTrace call -->
|
|
<ldarg_2 />
|
|
<brtrue name="skip" />
|
|
<ldarg_0 />
|
|
<ldarg_2 />
|
|
<call class="java.lang.ExceptionHelper" name="initCause" sig="(Ljava.lang.Throwable;Ljava.lang.Throwable;)Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skip" />
|
|
<ret />
|
|
</body>
|
|
</constructor>
|
|
<constructor sig="(Ljava.lang.Throwable;)V" modifiers="public">
|
|
<parameter name="cause" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="GetMessageFromCause" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" />
|
|
<ldarg_1 />
|
|
<call type="System.Exception" name=".ctor" sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" />
|
|
<!-- Start fillInStackTrace call -->
|
|
<ldsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<ldc_i4_0 />
|
|
<stsfld class="java.lang.Throwable" name="suppressFillInStackTrace" sig="Z" />
|
|
<brtrue name="skipFillInStackTrace" />
|
|
<ldarg_0 />
|
|
<callvirt class="java.lang.Throwable" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skipFillInStackTrace" />
|
|
<!-- End fillInStackTrace call -->
|
|
<ldarg_1 />
|
|
<brtrue name="skip" />
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<call class="java.lang.ExceptionHelper" name="initCause" sig="(Ljava.lang.Throwable;Ljava.lang.Throwable;)Ljava.lang.Throwable;" />
|
|
<pop />
|
|
<label name="skip" />
|
|
<ret />
|
|
</body>
|
|
</constructor>
|
|
<method type="virtual" name="printStackTrace" sig="()V" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)V" type="static" />
|
|
</method>
|
|
<method type="virtual" name="printStackTrace" sig="(Ljava.io.PrintStream;)V" modifiers="public">
|
|
<parameter name="s" />
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.io.PrintStream;)V" type="static" />
|
|
</method>
|
|
<method type="virtual" name="printStackTrace" sig="(Ljava.io.PrintWriter;)V" modifiers="public">
|
|
<parameter name="s" />
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.io.PrintWriter;)V" type="static" />
|
|
</method>
|
|
<method type="virtual" name="getMessage" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="getLocalizedMessage" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="initCause" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" modifiers="public">
|
|
<parameter name="cause" />
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="getCause" sig="()Ljava.lang.Throwable;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="getStackTrace" sig="()[Ljava.lang.StackTraceElement;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)[Ljava.lang.StackTraceElement;" type="static" />
|
|
</method>
|
|
<method type="virtual" name="setStackTrace" sig="([Ljava.lang.StackTraceElement;)V" modifiers="public">
|
|
<parameter name="stackTrace" />
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;[Ljava.lang.StackTraceElement;)V" type="static" />
|
|
</method>
|
|
<method type="virtual" name="toString" sig="()Ljava.lang.String;" modifiers="public">
|
|
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.Comparable" shadows="System.IComparable" modifiers="public abstract interface">
|
|
<attribute type="IKVM.Attributes.SignatureAttribute" sig="(Ljava.lang.String;)V">
|
|
<parameter><T:Ljava/lang/Object;>Ljava/lang/Object;</parameter>
|
|
</attribute>
|
|
<method name="compareTo" sig="(Ljava.lang.Object;)I" modifiers="public abstract">
|
|
<attribute type="IKVM.Attributes.SignatureAttribute" sig="(Ljava.lang.String;)V">
|
|
<parameter>(TT;)I</parameter>
|
|
</attribute>
|
|
<parameter name="o" />
|
|
<override name="CompareTo" />
|
|
</method>
|
|
</class>
|
|
<!-- Here we are adding/replacing methods to existing classes -->
|
|
<class name="java.lang.Class">
|
|
<field name="typeWrapper" sig="Lcli.IKVM.Internal.TypeWrapper;" modifiers="">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
</field>
|
|
<field name="pd" sig="Ljava.security.ProtectionDomain;" modifiers="" />
|
|
<field name="signers" sig="[Ljava.lang.Object;" modifiers="" />
|
|
<method name="op_Implicit" sig="(Lcli.System.Type;)Ljava.lang.Class;" modifiers="public static" attributes="SpecialName">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="ikvm.runtime.Util" name="getFriendlyClassFromType" sig="(Lcli.System.Type;)Ljava.lang.Class;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="newClass" sig="()Ljava.lang.Class;" modifiers="static">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<body>
|
|
<newobj class="java.lang.Class" name="<init>" sig="()V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.ClassLoader">
|
|
<field name="wrapper" sig="Lcli.IKVM.Internal.ClassLoaderWrapper;" modifiers="">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
</field>
|
|
<method name="getBootstrapResource" sig="(Ljava.lang.String;)Ljava.net.URL;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="java.lang.LangHelper" name="getBootstrapResource" sig="(Ljava.lang.String;)Ljava.net.URL;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getBootstrapResources" sig="(Ljava.lang.String;)Ljava.util.Enumeration;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<call class="java.lang.LangHelper" name="getBootstrapResources" sig="(Ljava.lang.String;)Ljava.util.Enumeration;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.Thread">
|
|
<field name="parkLock" sig="Ljava.lang.Object;" modifiers="" />
|
|
<field name="parkState" sig="I" modifiers="" />
|
|
</class>
|
|
<class name="java.lang.ThreadGroup">
|
|
<method name="createRootGroup" sig="()Ljava.lang.ThreadGroup;" modifiers="static">
|
|
<body>
|
|
<newobj class="java.lang.ThreadGroup" name="<init>" sig="()V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.reflect.Constructor">
|
|
<method name="_slot" sig="()I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.lang.reflect.Constructor" name="slot" sig="I" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.reflect.Method">
|
|
<method name="_slot" sig="()I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.lang.reflect.Method" name="slot" sig="I" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.net.NetworkInterface">
|
|
<method name="_set" sig="(Ljava.lang.String;[Ljava.net.InterfaceAddress;[Ljava.net.NetworkInterface;)V" modifiers="">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<stfld class="java.net.NetworkInterface" name="displayName" sig="Ljava.lang.String;" />
|
|
<ldarg_0 />
|
|
<ldarg_2 />
|
|
<stfld class="java.net.NetworkInterface" name="bindings" sig="[Ljava.net.InterfaceAddress;" />
|
|
<ldarg_0 />
|
|
<ldarg_3 />
|
|
<stfld class="java.net.NetworkInterface" name="childs" sig="[Ljava.net.NetworkInterface;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.security.AccessControlContext">
|
|
<method name="_privilegedContext" sig="(Ljava.security.AccessControlContext;)V" modifiers="">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<stfld class="java.security.AccessControlContext" name="privilegedContext" sig="Ljava.security.AccessControlContext;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.AbstractCollection">
|
|
<!-- We're adding an Add(object) method to allow collection initializers and Xml (soap) serialization to magically work -->
|
|
<!-- NOTE Modifiers.Final and MethodAttributes.NewSlot is recognized by AotTypeWrapper.MapModifiers() as a magic combination that generates a non-virtual method -->
|
|
<method name="Add" sig="(Ljava.lang.Object;)V" modifiers="public final" attributes="NewSlot">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<callvirt class="java.util.AbstractCollection" name="add" sig="(Ljava.lang.Object;)Z" />
|
|
<pop />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.AbstractMap">
|
|
<!-- NOTE the compiler will not magically make all Maps enumerable, so we manually implement IEnumerable here -->
|
|
<implements class="cli.System.Collections.IEnumerable" />
|
|
<method name="System.Collections.IEnumerable.GetEnumerator" sig="()Lcli.System.Collections.IEnumerator;" modifiers="private" attributes="NewSlot Virtual Final">
|
|
<override class="cli.System.Collections.IEnumerable" name="GetEnumerator" />
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<body>
|
|
<ldarg_0 />
|
|
<newobj class="ikvm.lang.MapEnumerator" name="<init>" sig="(Ljava.util.Map;)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<!-- We're adding an Add(object,object) method to allow collection initializers to magically work -->
|
|
<!-- NOTE Modifiers.Final and MethodAttributes.NewSlot is recognized by AotTypeWrapper.MapModifiers() as a magic combination that generates a non-virtual method -->
|
|
<method name="Add" sig="(Ljava.lang.Object;Ljava.lang.Object;)V" modifiers="public final" attributes="NewSlot">
|
|
<attribute type="IKVM.Attributes.HideFromJavaAttribute" sig="()V" />
|
|
<attribute type="System.ComponentModel.EditorBrowsableAttribute" sig="(Lcli.System.ComponentModel.EditorBrowsableState;)V">
|
|
<parameter>Never</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<callvirt class="java.util.AbstractMap" name="put" sig="(Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;" />
|
|
<pop />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.locks.AbstractQueuedSynchronizer">
|
|
<method name="compareAndSetState" sig="(II)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer" name="state" sig="I" />
|
|
<ldarg_2 />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="compareAndSetWaitStatus" sig="(Ljava.util.concurrent.locks.AbstractQueuedSynchronizer$Node;II)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer$Node" name="waitStatus" sig="I" />
|
|
<ldarg_2 />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.locks.LockSupport">
|
|
<method name="cmpxchgParkState" sig="(Ljava.lang.Thread;II)I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.lang.Thread" name="parkState" sig="I" />
|
|
<ldarg_1 />
|
|
<ldarg_2 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getBlocker" sig="(Ljava.lang.Thread;)Ljava.lang.Object;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<volatile />
|
|
<ldfld class="java.lang.Thread" name="parkBlocker" sig="Ljava.lang.Object;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="setBlocker" sig="(Ljava.lang.Thread;Ljava.lang.Object;)V">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<volatile />
|
|
<stfld class="java.lang.Thread" name="parkBlocker" sig="Ljava.lang.Object;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getParkLock" sig="(Ljava.lang.Thread;)Ljava.lang.Object;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<volatile />
|
|
<ldfld class="java.lang.Thread" name="parkLock" sig="Ljava.lang.Object;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="setParkLock" sig="(Ljava.lang.Thread;Ljava.lang.Object;)V">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<volatile />
|
|
<stfld class="java.lang.Thread" name="parkLock" sig="Ljava.lang.Object;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.Package">
|
|
<method name="getSystemPackage" sig="(Ljava.lang.String;)Ljava.lang.Package;" modifiers="static">
|
|
<body>
|
|
<ldsfld class="java.lang.Package" name="pkgs" sig="Ljava.util.Map;" />
|
|
<ldarg_0 />
|
|
<call class="java.lang.LangHelper" name="getSystemPackage" sig="(Ljava.util.Map;Ljava.lang.String;)Ljava.lang.Package;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="getSystemPackages" sig="()[Ljava.lang.Package;" modifiers="static">
|
|
<body>
|
|
<ldsfld class="java.lang.Package" name="pkgs" sig="Ljava.util.Map;" />
|
|
<call class="java.lang.LangHelper" name="getSystemPackages" sig="(Ljava.util.Map;)[Ljava.lang.Package;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<!-- This is where the "native" helper methods start -->
|
|
<class name="ikvm.lang.CIL">
|
|
<method name="unbox_byte" sig="(Ljava.lang.Object;)B">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Byte" />
|
|
<ldind_i1 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_boolean" sig="(Ljava.lang.Object;)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Boolean" />
|
|
<ldind_i1 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_short" sig="(Ljava.lang.Object;)S">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Int16" />
|
|
<ldind_i2 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_char" sig="(Ljava.lang.Object;)C">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Char" />
|
|
<ldind_i2 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_int" sig="(Ljava.lang.Object;)I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Int32" />
|
|
<ldind_i4 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_float" sig="(Ljava.lang.Object;)F">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Single" />
|
|
<ldind_r4 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_long" sig="(Ljava.lang.Object;)J">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Int64" />
|
|
<ldind_i8 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_double" sig="(Ljava.lang.Object;)D">
|
|
<body>
|
|
<ldarg_0 />
|
|
<unbox type="System.Double" />
|
|
<ldind_r8 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_byte" sig="(B)Lcli.System.Byte;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_boolean" sig="(Z)Lcli.System.Boolean;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_short" sig="(S)Lcli.System.Int16;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_char" sig="(C)Lcli.System.Char;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_int" sig="(I)Lcli.System.Int32;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_float" sig="(F)Lcli.System.Single;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_long" sig="(J)Lcli.System.Int64;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_double" sig="(D)Lcli.System.Double;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_sbyte" sig="(B)Lcli.System.SByte;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_ushort" sig="(S)Lcli.System.UInt16;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_uint" sig="(I)Lcli.System.UInt32;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="box_ulong" sig="(J)Lcli.System.UInt64;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_sbyte" sig="(Lcli.System.SByte;)B">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_ushort" sig="(Lcli.System.UInt16;)S">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_uint" sig="(Lcli.System.UInt32;)I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="unbox_ulong" sig="(Lcli.System.UInt64;)J">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="sun.misc.Launcher">
|
|
<method name="<init>" sig="()V">
|
|
<replace-method-call class="sun.misc.Launcher$ExtClassLoader" name="getExtClassLoader" sig="()Lsun.misc.Launcher$ExtClassLoader;">
|
|
<code>
|
|
<call class="sun.misc.MiscHelper" name="getExtClassLoader" sig="()Lsun.misc.Launcher$ExtClassLoader;" />
|
|
</code>
|
|
</replace-method-call>
|
|
<replace-method-call class="sun.misc.Launcher$AppClassLoader" name="getAppClassLoader" sig="(Ljava.lang.ClassLoader;)Ljava.lang.ClassLoader;">
|
|
<code>
|
|
<call class="sun.misc.MiscHelper" name="getAppClassLoader" sig="(Ljava.lang.ClassLoader;)Ljava.lang.ClassLoader;" />
|
|
</code>
|
|
</replace-method-call>
|
|
</method>
|
|
</class>
|
|
<class name="sun.misc.SharedSecrets">
|
|
<method name="javaUtilJarAccess" sig="()Lsun.misc.JavaUtilJarAccess;">
|
|
<replace-method-call class="sun.misc.Unsafe" name="ensureClassInitialized" sig="(Ljava.lang.Class;)V">
|
|
<code>
|
|
<pop />
|
|
<pop />
|
|
<runclassinit class="java.util.jar.JarFile" />
|
|
</code>
|
|
</replace-method-call>
|
|
</method>
|
|
<method name="getJavaIOAccess" sig="()Lsun.misc.JavaIOAccess;">
|
|
<replace-method-call class="sun.misc.Unsafe" name="ensureClassInitialized" sig="(Ljava.lang.Class;)V">
|
|
<code>
|
|
<pop />
|
|
<pop />
|
|
<runclassinit class="java.io.Console" />
|
|
</code>
|
|
</replace-method-call>
|
|
</method>
|
|
<method name="getJavaIODeleteOnExitAccess" sig="()Lsun.misc.JavaIODeleteOnExitAccess;">
|
|
<replace-method-call class="sun.misc.Unsafe" name="ensureClassInitialized" sig="(Ljava.lang.Class;)V">
|
|
<code>
|
|
<pop />
|
|
<pop />
|
|
<runclassinit class="java.io.File" />
|
|
</code>
|
|
</replace-method-call>
|
|
</method>
|
|
</class>
|
|
<class name="sun.net.dns.ResolverConfigurationImpl">
|
|
<method name="_set" sig="(Ljava.lang.String;Ljava.lang.String;)V" modifiers="static">
|
|
<body>
|
|
<ldarg_0 />
|
|
<stsfld class="sun.net.dns.ResolverConfigurationImpl" name="os_searchlist" sig="Ljava.lang.String;" />
|
|
<ldarg_1 />
|
|
<stsfld class="sun.net.dns.ResolverConfigurationImpl" name="os_nameservers" sig="Ljava.lang.String;" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicReference">
|
|
<method name="compareAndSet" sig="(Ljava.lang.Object;Ljava.lang.Object;)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicReference" name="value" sig="Ljava.lang.Object;" />
|
|
<ldarg_2 />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Object&;System.Object;System.Object" />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicReferenceArray">
|
|
<method name="get" sig="(I)Ljava.lang.Object;">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicReferenceArray" name="array" sig="[Ljava.lang.Object;" />
|
|
<ldarg_1 />
|
|
<ldelema sig="Ljava.lang.Object;" />
|
|
<volatile />
|
|
<ldind_ref />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="set" sig="(ILjava.lang.Object;)V">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicReferenceArray" name="array" sig="[Ljava.lang.Object;" />
|
|
<ldarg_1 />
|
|
<ldelema sig="Ljava.lang.Object;" />
|
|
<ldarg_2 />
|
|
<volatile />
|
|
<stind_ref />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="compareAndSet" sig="(ILjava.lang.Object;Ljava.lang.Object;)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicReferenceArray" name="array" sig="[Ljava.lang.Object;" />
|
|
<ldarg_1 />
|
|
<ldelema sig="Ljava.lang.Object;" />
|
|
<ldarg_3 />
|
|
<ldarg_2 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Object&;System.Object;System.Object" />
|
|
<ldarg_2 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicBoolean">
|
|
<method name="compareAndSwapInt" sig="(II)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicBoolean" name="value" sig="I" />
|
|
<ldarg_2 />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicInteger">
|
|
<method name="getAndSet" sig="(I)I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicInteger" name="value" sig="I" />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="Exchange" sig="System.Int32&;System.Int32" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="compareAndSet" sig="(II)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicInteger" name="value" sig="I" />
|
|
<ldarg_2 />
|
|
<ldarg_1 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ldarg_1 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="incrementAndGet" sig="()I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicInteger" name="value" sig="I" />
|
|
<call type="System.Threading.Interlocked" name="Increment" sig="System.Int32&" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="decrementAndGet" sig="()I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldflda class="java.util.concurrent.atomic.AtomicInteger" name="value" sig="I" />
|
|
<call type="System.Threading.Interlocked" name="Decrement" sig="System.Int32&" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicIntegerArray">
|
|
<method name="get" sig="(I)I">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicIntegerArray" name="array" sig="[I" />
|
|
<ldarg_1 />
|
|
<ldelema sig="I" />
|
|
<volatile />
|
|
<ldind_i4 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="set" sig="(II)V">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicIntegerArray" name="array" sig="[I" />
|
|
<ldarg_1 />
|
|
<ldelema sig="I" />
|
|
<ldarg_2 />
|
|
<volatile />
|
|
<stind_i4 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
<method name="compareAndSet" sig="(III)Z">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldfld class="java.util.concurrent.atomic.AtomicIntegerArray" name="array" sig="[I" />
|
|
<ldarg_1 />
|
|
<ldelema sig="I" />
|
|
<ldarg_3 />
|
|
<ldarg_2 />
|
|
<call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&;System.Int32;System.Int32" />
|
|
<ldarg_2 />
|
|
<ceq />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.util.concurrent.atomic.AtomicLong">
|
|
<method name="VMSupportsCS8" sig="()Z">
|
|
<body>
|
|
<ldc_i4_0 />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="java.lang.Byte">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Byte;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Short">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Short;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Integer">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Integer;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Long">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Long;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Float">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Float;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Double">
|
|
<implements class="cli.System.IFormattable">
|
|
<method name="ToString" sig="(Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;">
|
|
<redirect class="ikvm.internal.Formatter" type="static" name="ToString" sig="(Ljava.lang.Double;Ljava.lang.String;Lcli.System.IFormatProvider;)Ljava.lang.String;" />
|
|
</method>
|
|
</implements>
|
|
</class>
|
|
<class name="java.lang.Runtime">
|
|
<method name="addShutdownHook" sig="(Ljava.lang.Thread;)V">
|
|
<attribute type="System.Security.Permissions.SecurityPermissionAttribute" sig="(Lcli.System.Security.Permissions.SecurityAction;)V">
|
|
<parameter>LinkDemand</parameter>
|
|
<property name="ControlAppDomain" sig="Z">true</property>
|
|
</attribute>
|
|
</method>
|
|
</class>
|
|
<class name="java.nio.DirectByteBuffer">
|
|
<!-- add a constructor accessor for JNI -->
|
|
<method name="__new" sig="(JI)Ljava.nio.DirectByteBuffer;" modifiers="static">
|
|
<body>
|
|
<ldarg_0 />
|
|
<ldarg_1 />
|
|
<newobj class="java.nio.DirectByteBuffer" name="<init>" sig="(JI)V" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="sun.reflect.Reflection">
|
|
<!-- we manually hook up this native method, to prevent inlining and tail-call optimizations -->
|
|
<method name="getCallerClass" sig="(I)Ljava.lang.Class;">
|
|
<attribute type="System.Runtime.CompilerServices.MethodImplAttribute" sig="(Lcli.System.Runtime.CompilerServices.MethodImplOptions;)V">
|
|
<parameter>NoInlining</parameter>
|
|
</attribute>
|
|
<body>
|
|
<ldarg_0 />
|
|
<call type="IKVM.NativeCode.sun.reflect.Reflection" name="getCallerClass" sig="(I)Ljava.lang.Object;" />
|
|
<stloc name="class" class="java.lang.Object" />
|
|
<!-- "leave" is to thwart tail-call optimization -->
|
|
<leave name="x" />
|
|
<label name="x" />
|
|
<ldloc name="class" />
|
|
<castclass class="java.lang.Class" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
<class name="com.sun.beans.ObjectHandler">
|
|
<!-- HACK this is a workaround for an OpenJDK regression. It apparently no longer supports primitive types in the bean xml deserialization. -->
|
|
<method name="classForName2" sig="(Ljava.lang.String;)Ljava.lang.Class;">
|
|
<body>
|
|
<ldarg_1 />
|
|
<call class="com.sun.beans.ObjectHandler" name="typeNameToPrimitiveClass" sig="(Ljava.lang.String;)Ljava.lang.Class;" />
|
|
<dup />
|
|
<brfalse name="not_primitive" />
|
|
<ret />
|
|
<label name="not_primitive" />
|
|
<pop />
|
|
<exceptionBlock>
|
|
<try>
|
|
<ldarg_1 />
|
|
<ldarg_0 />
|
|
<ldfld class="com.sun.beans.ObjectHandler" name="ldr" sig="Ljava.lang.ClassLoader;" />
|
|
<call class="com.sun.beans.finder.ClassFinder" name="findClass" sig="(Ljava.lang.String;Ljava.lang.ClassLoader;)Ljava.lang.Class;" />
|
|
<stloc name="retval" class="java.lang.Class" />
|
|
</try>
|
|
<catch class="java.lang.ClassNotFoundException">
|
|
<stloc name="e" class="java.lang.ClassNotFoundException" />
|
|
<ldarg_0 />
|
|
<ldfld class="com.sun.beans.ObjectHandler" name="is" sig="Ljava.beans.XMLDecoder;" />
|
|
<brfalse name="skip" />
|
|
<ldarg_0 />
|
|
<ldfld class="com.sun.beans.ObjectHandler" name="is" sig="Ljava.beans.XMLDecoder;" />
|
|
<callvirt class="java.beans.XMLDecoder" name="getExceptionListener" sig="()Ljava.beans.ExceptionListener;" />
|
|
<ldloc name="e" />
|
|
<callvirt class="java.beans.ExceptionListener" name="exceptionThrown" sig="(Ljava.lang.Exception;)V" />
|
|
<label name="skip" />
|
|
<ldnull />
|
|
<stloc name="retval" class="java.lang.Class" />
|
|
</catch>
|
|
</exceptionBlock>
|
|
<ldloc name="retval" />
|
|
<ret />
|
|
</body>
|
|
</method>
|
|
</class>
|
|
</assembly>
|
|
<exceptionMappings>
|
|
<exception src="System.NullReferenceException" dst="java.lang.NullPointerException" />
|
|
<!-- many of the String and Object methods throw ArgumentNullException where Java throws an NPE -->
|
|
<exception src="System.ArgumentNullException" dst="java.lang.NullPointerException" />
|
|
<exception src="System.IndexOutOfRangeException" dst="java.lang.ArrayIndexOutOfBoundsException" />
|
|
<!-- HACK for String methods, we remap ArgumentOutOfRangeException to StringIndexOutOfBoundsException -->
|
|
<exception src="System.ArgumentOutOfRangeException" dst="java.lang.StringIndexOutOfBoundsException" />
|
|
<exception src="System.InvalidCastException" dst="java.lang.ClassCastException">
|
|
<code>
|
|
<callvirt type="System.Exception" name="get_Message" sig="()Ljava.lang.String;" />
|
|
<newobj class="java.lang.ClassCastException" name="<init>" sig="(Ljava.lang.String;)V" />
|
|
</code>
|
|
</exception>
|
|
<!-- NOTE we "map" to java.lang.Error, because that is the base class of all possible mappings.
|
|
The * in front of the class name means that all subclasses can be thrown as well.
|
|
-->
|
|
<exception src="System.TypeInitializationException" dst="*java.lang.Error">
|
|
<code>
|
|
<!-- this code is unreachable, TypeInitializationException is handled explicitly in ExceptionHelper.java -->
|
|
</code>
|
|
</exception>
|
|
<exception src="System.Threading.SynchronizationLockException" dst="java.lang.IllegalMonitorStateException" />
|
|
<exception src="System.OutOfMemoryException" dst="java.lang.OutOfMemoryError" />
|
|
<exception src="System.DivideByZeroException" dst="java.lang.ArithmeticException">
|
|
<code>
|
|
<pop />
|
|
<ldstr value="/ by zero" />
|
|
<newobj class="java.lang.ArithmeticException" name="<init>" sig="(Ljava.lang.String;)V" />
|
|
</code>
|
|
</exception>
|
|
<exception src="System.ArrayTypeMismatchException" dst="java.lang.ArrayStoreException" />
|
|
<exception src="System.StackOverflowException" dst="java.lang.StackOverflowError" />
|
|
<exception src="System.Security.VerificationException" dst="java.lang.VerifyError" />
|
|
<exception src="System.Threading.ThreadAbortException" dst="java.lang.ThreadDeath">
|
|
<code>
|
|
<castclass type="System.Threading.ThreadAbortException" />
|
|
<call type="System.Threading.ThreadAbortException" name="get_ExceptionState" sig="()Ljava.lang.Object;" />
|
|
<isinst class="java.lang.ThreadDeath" />
|
|
<dup />
|
|
<brtrue name="end" />
|
|
<pop />
|
|
<newobj class="java.lang.ThreadDeath" name="<init>" sig="()V" />
|
|
<label name="end" />
|
|
<!-- NOTE we do this last because ResetAbort clears the ExceptionState of the ThreadAbortException (why?) -->
|
|
<!-- TODO we should put an exception handler around the ResetAbort call, because it will throw a ThreadStateException
|
|
if no Abort is pending (someone could have thrown the exception manually, or we could have called on a
|
|
previous handler that turned out not to be match for this exception type) -->
|
|
<stloc name="x" class="java.lang.ThreadDeath" />
|
|
<exceptionBlock>
|
|
<try>
|
|
<!-- TODO instead of catching the ThreadStateException, we should check the ThreadState
|
|
before calling ResetAbort -->
|
|
<call type="System.Threading.Thread" name="ResetAbort" sig="()V" />
|
|
</try>
|
|
<catch type="System.Threading.ThreadStateException">
|
|
<!-- ignore the exception -->
|
|
</catch>
|
|
</exceptionBlock>
|
|
<ldloc name="x" />
|
|
</code>
|
|
</exception>
|
|
<!-- TODO make sure the originating method was from an IKVM.NET generated assembly, because if it was
|
|
generated by non-Java code, this remapping is obviously bogus. -->
|
|
<exception src="System.OverflowException" dst="java.lang.NegativeArraySizeException" />
|
|
</exceptionMappings>
|
|
</root>
|