ikvm-fork/classpath/map.xml

787 строки
33 KiB
XML
Исходник Обычный вид История

2002-12-18 19:00:25 +03:00
<?xml version="1.0" encoding="utf-8" ?>
<!--
2004-03-08 18:18:47 +03:00
Copyright (C) 2002, 2003, 2004 Jeroen Frijters
2002-12-18 19:00:25 +03:00
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>
2004-04-23 18:21:43 +04:00
<assembly>
<class name="java.lang.Object" shadows="System.Object, mscorlib" modifiers="public">
2002-12-18 19:00:25 +03:00
<constructor sig="()V" modifiers="public" />
<method name="notifyAll" sig="()V" modifiers="public final">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<call type="System.Threading.Monitor, mscorlib" name="PulseAll" sig="(Ljava.lang.Object;)V" />
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
<method name="notify" sig="()V" modifiers="public final">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<call type="System.Threading.Monitor, mscorlib" name="Pulse" sig="(Ljava.lang.Object;)V" />
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
<method name="wait" sig="()V" modifiers="public final">
2003-11-17 15:01:50 +03:00
<throws class="java.lang.InterruptedException" />
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2003-08-21 14:06:34 +04:00
<call type="System.Threading.Monitor, mscorlib" name="Wait" sig="(Ljava.lang.Object;)Z" />
2003-04-14 13:41:58 +04:00
<!-- For some reason, Wait returns a boolean -->
<pop />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
<method name="wait" sig="(J)V" modifiers="public final">
2003-11-17 15:01:50 +03:00
<throws class="java.lang.InterruptedException" />
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
<ldc_i4_0 />
<call class="java.lang.ObjectHelper" name="wait" sig="(Ljava.lang.Object;JI)V" />
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
<method name="wait" sig="(JI)V" modifiers="public final">
2003-11-17 15:01:50 +03:00
<throws class="java.lang.InterruptedException" />
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
<ldarg_2 />
<call class="java.lang.ObjectHelper" name="wait" sig="(Ljava.lang.Object;JI)V" />
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="getClass" sig="()Ljava.lang.Class;" modifiers="public final">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2004-01-11 16:14:42 +03:00
<call type="System.Object, mscorlib" name="GetType" />
2003-04-14 13:41:58 +04:00
<call type="NativeCode.java.lang.VMClass" name="getClassFromType" />
<castclass class="java.lang.Class" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="clone" sig="()Ljava.lang.Object;" modifiers="protected">
2003-11-17 15:01:50 +03:00
<throws class="java.lang.CloneNotSupportedException" />
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2003-08-21 14:06:34 +04:00
<isinst class="java.lang.Cloneable" />
2003-04-14 13:41:58 +04:00
<brtrue name="ok" />
<newobj class="java.lang.CloneNotSupportedException" name="&lt;init&gt;" sig="()V" />
<throw />
<label name="ok" />
2004-03-08 18:18:47 +03:00
<ldarg_0 />
2004-01-11 16:14:42 +03:00
<call type="System.Object, mscorlib" name="MemberwiseClone" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
<alternateBody>
<ldarg_0 />
<isinst type="System.Array, mscorlib" />
<dup />
<brtrue name="ok" />
<newobj class="java.lang.CloneNotSupportedException" name="&lt;init&gt;" sig="()V" />
<throw />
<label name="ok" />
<call type="System.Array, mscorlib" name="Clone" sig="()Ljava.lang.Object;" />
<ret />
</alternateBody>
</method>
2003-05-30 16:08:59 +04:00
<method name="toString" sig="()Ljava.lang.String;" modifiers="public">
2002-12-18 19:00:25 +03:00
<override name="ToString" />
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2003-05-30 16:08:59 +04:00
<call class="java.lang.ObjectHelper" name="toStringSpecial" sig="(Ljava.lang.Object;)Ljava.lang.String;" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
<alternateBody>
<ldarg_0 />
2004-01-11 16:14:42 +03:00
<isinst type="System.Array, mscorlib" />
2002-12-18 19:00:25 +03:00
<brfalse name="skip" />
2004-03-08 18:18:47 +03:00
<ldarg_0 />
2003-05-30 16:08:59 +04:00
<call class="java.lang.ObjectHelper" name="toStringSpecial" sig="(Ljava.lang.Object;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
<br name="end" />
<label name="skip" />
2004-03-08 18:18:47 +03:00
<ldarg_0 />
2004-01-11 16:14:42 +03:00
<callvirt type="System.Object, mscorlib" name="ToString" />
2002-12-18 19:00:25 +03:00
<label name="end" />
2004-03-08 18:18:47 +03:00
<ret />
</alternateBody>
2002-12-18 19:00:25 +03:00
</method>
<method name="hashCode" sig="()I" modifiers="public">
<override name="GetHashCode" />
</method>
2003-05-30 16:08:59 +04:00
<method name="equals" sig="(Ljava.lang.Object;)Z" modifiers="public">
2002-12-18 19:00:25 +03:00
<override name="Equals" />
</method>
<method name="finalize" sig="()V" modifiers="protected">
2003-11-17 15:01:50 +03:00
<throws class="java.lang.Throwable" />
2004-03-08 18:18:47 +03:00
<!-- 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, mscorlib" name="Finalize" />
<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>
2002-12-18 19:00:25 +03:00
</method>
</class>
2004-04-23 18:21:43 +04:00
<class name="java.lang.String" shadows="System.String, mscorlib" modifiers="public final">
2002-12-27 12:01:16 +03:00
<implements class="java.lang.Comparable" />
2003-07-31 16:49:29 +04:00
<implements class="java.lang.CharSequence" />
2003-02-15 12:20:26 +03:00
<implements class="java.io.Serializable" />
2003-11-17 15:01:50 +03:00
<field name="serialVersionUID" sig="J" modifiers="private static final" constant="-6849794470754667710" />
2002-12-18 19:00:25 +03:00
<constructor sig="()V" modifiers="public">
2004-03-08 18:18:47 +03:00
<alternateBody>
2002-12-18 19:00:25 +03:00
<ldstr value="" />
2003-08-21 14:06:34 +04:00
<call type="System.String, mscorlib" name="Copy" />
2004-03-08 18:18:47 +03:00
<ret />
</alternateBody>
2002-12-18 19:00:25 +03:00
</constructor>
<constructor sig="([C)V" modifiers="public" />
<constructor sig="([CII)V" modifiers="public" />
<!-- Package private constructor, that we redirect to static helper -->
<constructor sig="([CIIZ)V" modifiers="">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([CIIZ)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="(Ljava.lang.String;)V" modifiers="public">
2003-08-21 14:06:34 +04:00
<redirect class="System.String, mscorlib" name="Copy" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="(Ljava.lang.StringBuffer;)V" modifiers="public">
2003-07-31 16:49:29 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="(Ljava.lang.StringBuffer;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
<constructor sig="([B)V" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([B)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
<constructor sig="([BI)V" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BI)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
<constructor sig="([BII)V" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BII)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
<constructor sig="([BIII)V" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BIII)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="([BLjava.lang.String;)V" modifiers="public">
2003-11-17 15:01:50 +03:00
<throws class="java.io.UnsupportedEncodingException" />
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BLjava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="([BIILjava.lang.String;)V" modifiers="public">
2003-11-17 15:01:50 +03:00
<throws class="java.io.UnsupportedEncodingException" />
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" name="NewString" type="static" sig="([BIILjava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</constructor>
<method name="hashCode" sig="()I" modifiers="public">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2004-04-23 18:21:43 +04:00
<call class="java.lang.StringHelper" name="hashCode" sig="(Lcli.System.String;)I" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2003-02-27 19:41:47 +03:00
</method>
2004-03-16 20:10:09 +03:00
<!-- we have a toString here to make sure that it shows up as a declared method in reflection -->
2004-03-08 18:18:47 +03:00
<method name="toString" sig="()Ljava.lang.String;" modifiers="public" />
2004-03-16 20:10:09 +03:00
<!-- 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" />
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(Z)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(I)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(J)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(C)Ljava.lang.String;" modifiers="public static">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" sig="(C)Lcli.System.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(F)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(D)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-27 12:01:16 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="([C)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="([CII)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2003-02-27 19:41:47 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="valueOf" sig="(Ljava.lang.Object;)Ljava.lang.String;" modifiers="public static">
2003-04-14 13:41:58 +04:00
<redirect class="java.lang.StringHelper" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="substring" sig="(I)Ljava.lang.String;" modifiers="public">
2002-12-18 19:00:25 +03:00
<redirect name="Substring" />
</method>
<method name="length" sig="()I" modifiers="public">
<redirect name="get_Length" />
</method>
<method name="charAt" sig="(I)C" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;I)C" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="substring" sig="(II)Ljava.lang.String;" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
<method name="indexOf" sig="(I)I" modifiers="public">
<redirect name="IndexOf" sig="(C)I" />
</method>
<method name="indexOf" sig="(II)I" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;CI)I" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="indexOf" sig="(Ljava.lang.String;)I" modifiers="public">
2002-12-18 19:00:25 +03:00
<redirect name="IndexOf" />
</method>
2003-05-30 16:08:59 +04:00
<method name="indexOf" sig="(Ljava.lang.String;I)I" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;Ljava.lang.String;I)I" />
2002-12-18 19:00:25 +03:00
</method>
<method name="lastIndexOf" sig="(I)I" modifiers="public">
<redirect name="LastIndexOf" sig="(C)I" />
</method>
<method name="lastIndexOf" sig="(II)I" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;CI)I" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="lastIndexOf" sig="(Ljava.lang.String;)I" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;Ljava.lang.String;)I" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="lastIndexOf" sig="(Ljava.lang.String;I)I" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;Ljava.lang.String;I)I" />
2003-01-02 16:46:16 +03:00
</method>
2002-12-18 19:00:25 +03:00
<method name="toCharArray" sig="()[C" modifiers="public">
<redirect name="ToCharArray" />
</method>
<method name="getChars" sig="(II[CI)V" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;II[CI)V" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="startsWith" sig="(Ljava.lang.String;)Z" modifiers="public">
2002-12-18 19:00:25 +03:00
<redirect name="StartsWith" />
</method>
2003-05-30 16:08:59 +04:00
<method name="startsWith" sig="(Ljava.lang.String;I)Z" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Lcli.System.String;Ljava.lang.String;I)Z" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="endsWith" sig="(Ljava.lang.String;)Z" modifiers="public">
2002-12-18 19:00:25 +03:00
<redirect name="EndsWith" />
</method>
2003-05-30 16:08:59 +04:00
<method name="toUpperCase" sig="()Ljava.lang.String;" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="toUpperCase" sig="(Ljava.util.Locale;)Ljava.lang.String;" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.util.Locale;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="toLowerCase" sig="()Ljava.lang.String;" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="toLowerCase" sig="(Ljava.util.Locale;)Ljava.lang.String;" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.util.Locale;)Ljava.lang.String;" />
2002-12-29 19:27:00 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="compareToIgnoreCase" sig="(Ljava.lang.String;)I" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="equalsIgnoreCase" sig="(Ljava.lang.String;)Z" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)Z" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="intern" sig="()Ljava.lang.String;" modifiers="public">
<redirect type="static" name="Intern" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="compareTo" sig="(Ljava.lang.String;)I" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)I" />
2002-12-18 19:00:25 +03:00
</method>
2004-03-16 20:10:09 +03:00
<method name="compareTo" sig="(Ljava.lang.Object;)I" modifiers="public">
<redirect name="CompareTo" />
</method>
2003-05-30 16:08:59 +04:00
<method name="replace" sig="(CC)Ljava.lang.String;" modifiers="public">
2002-12-18 19:00:25 +03:00
<redirect name="Replace" />
</method>
<method name="getBytes" sig="()[B" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)[B" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="getBytes" sig="(Ljava.lang.String;)[B" modifiers="public">
2003-11-17 15:01:50 +03:00
<throws class="java.io.UnsupportedEncodingException" />
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)[B" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="subSequence" sig="(II)Ljava.lang.CharSequence;" modifiers="public">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" name="substring" sig="(Lcli.System.String;II)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="trim" sig="()Ljava.lang.String;" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="regionMatches" sig="(ZILjava.lang.String;II)Z" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;ZILjava.lang.String;II)Z" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="regionMatches" sig="(ILjava.lang.String;II)Z" modifiers="public">
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;ILjava.lang.String;II)Z" />
2002-12-18 19:00:25 +03:00
</method>
<method name="getBytes" sig="(II[BI)V" modifiers="public">
2003-05-30 16:08:59 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;II[BI)V" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="concat" sig="(Ljava.lang.String;)Ljava.lang.String;" modifiers="public">
2003-08-05 18:07:22 +04:00
<redirect class="java.lang.StringHelper" type="static" sig="(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;" />
2003-02-27 19:41:47 +03:00
</method>
2004-03-16 20:10:09 +03:00
<method name="contentEquals" sig="(Ljava.lang.StringBuffer;)Z" modifiers="public">
<body>
<ldarg_0 />
<ldarg_1 />
<callvirt class="java.lang.StringBuffer" name="toString" sig="()Ljava.lang.String;" />
<callvirt type="System.String, mscorlib" name="Equals" sig="(Ljava.lang.String;)Z" />
<ret />
</body>
</method>
<method name="matches" sig="(Ljava.lang.String;)Z" modifiers="public">
<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">
<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">
<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">
<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">
<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>
2003-05-30 16:08:59 +04:00
<method name="copyValueOf" sig="([C)Ljava.lang.String;" modifiers="public static">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2003-08-21 14:06:34 +04:00
<newobj type="System.String, mscorlib" name=".ctor" sig="([C)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method name="copyValueOf" sig="([CII)Ljava.lang.String;" modifiers="public static">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
<ldarg_2 />
2003-08-21 14:06:34 +04:00
<newobj type="System.String, mscorlib" name=".ctor" sig="([CII)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
2004-03-08 18:18:47 +03:00
<field name="CASE_INSENSITIVE_ORDER" sig="Ljava.util.Comparator;" modifiers="public static final" />
2002-12-18 19:00:25 +03:00
<!-- NOTE we're redirecting fields to static methods here!
NOTE only reading fields can be redirected
-->
<field name="count" sig="I" modifiers="">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" name="GetCountField" sig="(Lcli.System.String;)I" />
2002-12-18 19:00:25 +03:00
</field>
<!-- Making a new char array instead of directly accessing the contents of the string, probably isn't
as efficient as the coder of this construct wished for, but hey ;-) At least it works...
-->
2003-05-30 16:08:59 +04:00
<method name="zeroBasedStringValue" sig="(Ljava.lang.String;)[C" modifiers="static">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<call type="System.String, mscorlib" name="ToCharArray" sig="()[C" />
<ret />
</body>
2002-12-18 19:00:25 +03:00
</method>
2004-03-08 18:18:47 +03:00
<!-- NOTE value and offset aren't used anymore in Classpath's StringBuffer, so we should drop them -->
2002-12-18 19:00:25 +03:00
<field name="value" sig="[C" modifiers="">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" name="GetValueField" sig="(Lcli.System.String;)[C" />
2002-12-18 19:00:25 +03:00
</field>
<field name="offset" sig="I" modifiers="">
2004-04-23 18:21:43 +04:00
<redirect class="java.lang.StringHelper" type="static" name="GetOffsetField" sig="(Lcli.System.String;)I" />
2002-12-18 19:00:25 +03:00
</field>
2004-03-08 18:18:47 +03:00
<!-- TODO mark this method as BeforeFieldInit (and benchmark to see if that is faster) -->
<clinit>
<body>
<newobj class="java.lang.String$CaseInsensitiveComparator" name="&lt;init&gt;" sig="()V" />
<stsfld class="java.lang.String" name="CASE_INSENSITIVE_ORDER" sig="Ljava.util.Comparator;" />
<ret />
</body>
</clinit>
2002-12-18 19:00:25 +03:00
</class>
2004-04-23 18:21:43 +04:00
<class name="java.lang.Throwable" shadows="System.Exception, mscorlib" modifiers="public">
2003-07-31 16:49:29 +04:00
<implements class="java.io.Serializable" />
2003-11-17 15:01:50 +03:00
<field name="serialVersionUID" sig="J" modifiers="private static final" constant="-3042686055658047285" />
2002-12-18 19:00:25 +03:00
<constructor sig="()V" modifiers="public">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
2003-12-20 01:19:18 +03:00
<call class="java.lang.ExceptionHelper" name="get_NullString" sig="()Ljava.lang.String;" />
2004-01-11 16:14:42 +03:00
<call type="System.Exception, mscorlib" name=".ctor" sig="(Ljava.lang.String;)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="(Ljava.lang.String;)V" modifiers="public">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
2003-12-20 01:19:18 +03:00
<call class="java.lang.ExceptionHelper" name="FilterMessage" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2004-01-11 16:14:42 +03:00
<call type="System.Exception, mscorlib" name=".ctor" sig="(Ljava.lang.String;)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" modifiers="public">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
2003-12-20 01:19:18 +03:00
<call class="java.lang.ExceptionHelper" name="FilterMessage" sig="(Ljava.lang.String;)Ljava.lang.String;" />
2004-03-08 18:18:47 +03:00
<ldarg_2 />
2004-01-11 16:14:42 +03:00
<call type="System.Exception, mscorlib" name=".ctor" sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</constructor>
2003-05-30 16:08:59 +04:00
<constructor sig="(Ljava.lang.Throwable;)V" modifiers="public">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ldarg_1 />
2003-12-20 01:19:18 +03:00
<call class="java.lang.ExceptionHelper" name="GetMessageFromCause" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" />
2004-03-08 18:18:47 +03:00
<ldarg_1 />
2004-01-11 16:14:42 +03:00
<call type="System.Exception, mscorlib" name=".ctor" sig="(Ljava.lang.String;Ljava.lang.Throwable;)V" />
2004-03-08 18:18:47 +03:00
<ret />
</body>
2002-12-18 19:00:25 +03:00
</constructor>
<method type="virtual" name="printStackTrace" sig="()V" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)V" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="printStackTrace" sig="(Ljava.io.PrintStream;)V" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.io.PrintStream;)V" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="printStackTrace" sig="(Ljava.io.PrintWriter;)V" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.io.PrintWriter;)V" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="getMessage" sig="()Ljava.lang.String;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="getLocalizedMessage" sig="()Ljava.lang.String;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="fillInStackTrace" sig="()Ljava.lang.Throwable;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="initCause" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="getCause" sig="()Ljava.lang.Throwable;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="getStackTrace" sig="()[Ljava.lang.StackTraceElement;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)[Ljava.lang.StackTraceElement;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="setStackTrace" sig="([Ljava.lang.StackTraceElement;)V" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;[Ljava.lang.StackTraceElement;)V" type="static" />
2002-12-18 19:00:25 +03:00
</method>
2003-05-30 16:08:59 +04:00
<method type="virtual" name="toString" sig="()Ljava.lang.String;" modifiers="public">
2003-12-20 01:19:18 +03:00
<redirect class="java.lang.ExceptionHelper" sig="(Ljava.lang.Throwable;)Ljava.lang.String;" type="static" />
2002-12-18 19:00:25 +03:00
</method>
</class>
2004-04-23 18:21:43 +04:00
<class name="java.lang.Comparable" shadows="System.IComparable, mscorlib" modifiers="public abstract interface">
2003-10-17 12:08:31 +04:00
<method name="compareTo" sig="(Ljava.lang.Object;)I" modifiers="public abstract">
2002-12-18 19:00:25 +03:00
<override name="CompareTo" />
</method>
</class>
2004-04-23 18:21:43 +04:00
<class name="gnu.classpath.RawData" shadows="System.IntPtr, mscorlib" scope="private">
<!-- TODO custom boxing isn't support for non-private remapped types, but since this is the only
type that has a custom boxing rule, this isn't yet an issue -->
2003-11-17 15:01:50 +03:00
<box>
<!-- We special case boxing, to "box" IntPtr.Zero as null -->
<dup />
<brfalse name="null" />
2004-01-11 16:14:42 +03:00
<box type="System.IntPtr, mscorlib" />
2003-11-17 15:01:50 +03:00
<br name="end" />
<label name="null" />
<pop />
<ldnull />
<label name="end" />
</box>
</class>
2004-04-23 18:21:43 +04:00
<!-- This is where the "native" helper methods start -->
2003-08-08 16:37:14 +04:00
<class name="ikvm.lang.CIL">
2004-06-14 14:36:38 +04:00
<method name="unbox_byte" sig="(Ljava.lang.Object;)B">
<body>
<ldarg_0 />
<unbox type="System.SByte, mscorlib" />
<ldind_i1 />
<ret />
</body>
</method>
<method name="unbox_boolean" sig="(Ljava.lang.Object;)Z">
<body>
<ldarg_0 />
<unbox type="System.Boolean, mscorlib" />
<ldind_i1 />
<ret />
</body>
</method>
<method name="unbox_short" sig="(Ljava.lang.Object;)S">
<body>
<ldarg_0 />
<unbox type="System.Int16, mscorlib" />
<ldind_i2 />
<ret />
</body>
</method>
<method name="unbox_char" sig="(Ljava.lang.Object;)C">
<body>
<ldarg_0 />
<unbox type="System.Char, mscorlib" />
<ldind_i2 />
<ret />
</body>
</method>
2003-08-08 16:37:14 +04:00
<method name="unbox_int" sig="(Ljava.lang.Object;)I">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<unbox type="System.Int32, mscorlib" />
<ldind_i4 />
<ret />
</body>
2003-08-08 16:37:14 +04:00
</method>
2004-06-14 14:36:38 +04:00
<method name="unbox_float" sig="(Ljava.lang.Object;)F">
<body>
<ldarg_0 />
<unbox type="System.Single, mscorlib" />
<ldind_r4 />
<ret />
</body>
</method>
<method name="unbox_long" sig="(Ljava.lang.Object;)J">
<body>
<ldarg_0 />
<unbox type="System.Int64, mscorlib" />
<ldind_i8 />
<ret />
</body>
</method>
<method name="unbox_double" sig="(Ljava.lang.Object;)D">
<body>
<ldarg_0 />
<unbox type="System.Double, mscorlib" />
<ldind_r8 />
<ret />
</body>
</method>
<method name="box_byte" sig="(B)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.SByte, mscorlib" />
<ret />
</body>
</method>
<method name="box_boolean" sig="(Z)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Boolean, mscorlib" />
<ret />
</body>
</method>
<method name="box_short" sig="(S)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Int16, mscorlib" />
<ret />
</body>
</method>
<method name="box_char" sig="(C)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Char, mscorlib" />
<ret />
</body>
</method>
<method name="box_int" sig="(I)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Int32, mscorlib" />
<ret />
</body>
</method>
<method name="box_float" sig="(F)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Single, mscorlib" />
<ret />
</body>
</method>
<method name="box_long" sig="(J)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Int64, mscorlib" />
<ret />
</body>
</method>
<method name="box_double" sig="(D)Ljava.lang.Object;">
<body>
<ldarg_0 />
<box type="System.Double, mscorlib" />
<ret />
</body>
</method>
<method name="box_ubyte" sig="(B)Lcli.System.Byte;">
<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_ubyte" sig="(Lcli.System.Byte;)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>
2003-08-08 16:37:14 +04:00
</class>
2003-08-21 14:06:34 +04:00
<class name="ikvm.lang.ByteArrayHack">
<method name="cast" sig="([B)[Lcli.System.Byte;">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ret />
</body>
2003-08-21 14:06:34 +04:00
</method>
<method name="cast" sig="([Lcli.System.Byte;)[B">
2004-03-08 18:18:47 +03:00
<body>
<ldarg_0 />
<ret />
</body>
2003-08-21 14:06:34 +04:00
</method>
</class>
2004-04-23 18:21:43 +04:00
</assembly>
2003-12-20 01:19:18 +03:00
<exceptionMappings>
<exception src="System.NullReferenceException, mscorlib" dst="java.lang.NullPointerException" />
<!-- many of the String and Object methods throw ArgumentNullException where Java throws an NPE -->
<exception src="System.ArgumentNullException, mscorlib" dst="java.lang.NullPointerException" />
<exception src="System.IndexOutOfRangeException, mscorlib" dst="java.lang.ArrayIndexOutOfBoundsException" />
<!-- HACK for String methods, we remap ArgumentOutOfRangeException to StringIndexOutOfBoundsException -->
<exception src="System.ArgumentOutOfRangeException, mscorlib" dst="java.lang.StringIndexOutOfBoundsException" />
<exception src="System.InvalidCastException, mscorlib" dst="java.lang.ClassCastException" />
<!-- NOTE we "map" to java.lang.Error, because that is the base class of all possible mappings -->
<exception src="System.TypeInitializationException, mscorlib" dst="java.lang.Error">
<code>
<call type="System.Exception, mscorlib" name="get_InnerException" sig="()Ljava.lang.Throwable;" />
<call class="java.lang.ExceptionHelper" name="MapExceptionFast" sig="(Ljava.lang.Throwable;)Ljava.lang.Throwable;" />
<dup />
<isinst class="java.lang.Error" />
<brtrue name="end" />
<newobj class="java.lang.ExceptionInInitializerError" name="&lt;init&gt;" sig="(Ljava.lang.Throwable;)V" />
<label name="end" />
</code>
</exception>
<exception src="System.Threading.SynchronizationLockException, mscorlib" dst="java.lang.IllegalMonitorStateException" />
<exception src="System.Threading.ThreadInterruptedException, mscorlib" dst="java.lang.InterruptedException" />
<exception src="System.OutOfMemoryException, mscorlib" dst="java.lang.OutOfMemoryError" />
<exception src="System.DivideByZeroException, mscorlib" dst="java.lang.ArithmeticException">
<code>
<pop />
<ldstr value="/ by zero" />
<newobj class="java.lang.ArithmeticException" name="&lt;init&gt;" sig="(Ljava.lang.String;)V" />
</code>
</exception>
<exception src="System.ArrayTypeMismatchException, mscorlib" dst="java.lang.ArrayStoreException" />
<exception src="System.StackOverflowException, mscorlib" dst="java.lang.StackOverflowError" />
<exception src="System.Security.VerificationException, mscorlib" dst="java.lang.VerifyError" />
<exception src="System.Threading.ThreadAbortException, mscorlib" dst="java.lang.ThreadDeath">
<code>
<castclass type="System.Threading.ThreadAbortException, mscorlib" />
2004-03-08 18:18:47 +03:00
<call type="System.Threading.ThreadAbortException, mscorlib" name="get_ExceptionState" sig="()Ljava.lang.Object;" />
2003-12-20 01:19:18 +03:00
<dup />
2004-03-08 18:18:47 +03:00
<isinst class="java.lang.ThreadDeath" />
2003-12-20 01:19:18 +03:00
<brtrue name="end" />
<pop />
<newobj class="java.lang.ThreadDeath" name="&lt;init&gt;" sig="()V" />
<label name="end" />
2004-03-08 18:18:47 +03:00
<!-- 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) -->
<castclass class="java.lang.ThreadDeath" />
2004-01-11 16:14:42 +03:00
<call type="System.Threading.Thread, mscorlib" name="ResetAbort" sig="()V" />
2003-12-20 01:19:18 +03:00
</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, mscorlib" dst="java.lang.NegativeArraySizeException" />
</exceptionMappings>
2003-01-02 16:46:16 +03:00
</root>