diff options
author | jfrijters <jfrijters> | 2013-02-21 17:49:03 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2013-02-21 17:49:03 +0400 |
commit | c97ce4700f702fb77fb95185b5b20b268d144f39 (patch) | |
tree | 11372214eb2d5b98f811643bab50a8c84acf9281 | |
parent | 9de78488a29bf86f3e3eb777b3bdec55315b3fb9 (diff) |
Removed map.xml patching of bootstrap resource loading methods in java.lang.ClassLoader.
-rw-r--r-- | openjdk/java/lang/ClassLoader.java | 22 | ||||
-rw-r--r-- | openjdk/java/lang/LangHelper.java | 10 | ||||
-rw-r--r-- | openjdk/map.xml | 14 | ||||
-rw-r--r-- | runtime/openjdk.cs | 23 |
4 files changed, 26 insertions, 43 deletions
diff --git a/openjdk/java/lang/ClassLoader.java b/openjdk/java/lang/ClassLoader.java index 96cc432e..3477666b 100644 --- a/openjdk/java/lang/ClassLoader.java +++ b/openjdk/java/lang/ClassLoader.java @@ -1326,29 +1326,13 @@ public abstract class ClassLoader { /** * Find resources from the VM's built-in classloader. */ - private static URL getBootstrapResource(String name) { - URLClassPath ucp = getBootstrapClassPath(); - Resource res = ucp.getResource(name); - return res != null ? res.getURL() : null; - } + private static native URL getBootstrapResource(String name); /** * Find resources from the VM's built-in classloader. */ - private static Enumeration<URL> getBootstrapResources(String name) - throws IOException - { - final Enumeration<Resource> e = - getBootstrapClassPath().getResources(name); - return new Enumeration<URL> () { - public URL nextElement() { - return e.nextElement().getURL(); - } - public boolean hasMoreElements() { - return e.hasMoreElements(); - } - }; - } + private static native Enumeration<URL> getBootstrapResources(String name) + throws IOException; // Returns the URLClassPath that is used for finding system resources. static URLClassPath getBootstrapClassPath() { diff --git a/openjdk/java/lang/LangHelper.java b/openjdk/java/lang/LangHelper.java index 93134920..f4fc99ff 100644 --- a/openjdk/java/lang/LangHelper.java +++ b/openjdk/java/lang/LangHelper.java @@ -89,16 +89,6 @@ public class LangHelper return ikvm.runtime.Util.getInstanceTypeFromClass(Object.class).get_Assembly(); } - static URL getBootstrapResource(String name) - { - return AssemblyClassLoader.getResource(getBootstrapAssembly(), name); - } - - static Enumeration getBootstrapResources(String name) throws IOException - { - return AssemblyClassLoader.getResources(getBootstrapAssembly(), name); - } - public static sun.misc.JavaLangAccess getJavaLangAccess() { return new sun.misc.JavaLangAccess() { diff --git a/openjdk/map.xml b/openjdk/map.xml index de7d77b5..5bc4cd4d 100644 --- a/openjdk/map.xml +++ b/openjdk/map.xml @@ -1411,20 +1411,6 @@ <ret /> </body> </constructor> - <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.Enum"> <implements class="cli.System.Runtime.Serialization.ISerializable" /> diff --git a/runtime/openjdk.cs b/runtime/openjdk.cs index b1de2f1f..caca2789 100644 --- a/runtime/openjdk.cs +++ b/runtime/openjdk.cs @@ -2938,6 +2938,29 @@ namespace IKVM.NativeCode.java static class ClassLoader { + public static global::java.net.URL getBootstrapResource(string name) + { + foreach (global::java.net.URL url in ClassLoaderWrapper.GetBootstrapClassLoader().GetResources(name)) + { + return url; + } + return null; + } + + public static global::java.util.Enumeration getBootstrapResources(string name) + { +#if FIRST_PASS + return null; +#else + global::java.util.Vector v = new global::java.util.Vector(); + foreach (global::java.net.URL url in ClassLoaderWrapper.GetBootstrapClassLoader().GetResources(name)) + { + v.add(url); + } + return v.elements(); +#endif + } + public static jlClass defineClass0(jlClassLoader thisClassLoader, string name, byte[] b, int off, int len, ProtectionDomain pd) { return defineClass1(thisClassLoader, name, b, off, len, pd, null); |