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

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2013-02-21 17:49:03 +0400
committerjfrijters <jfrijters>2013-02-21 17:49:03 +0400
commitc97ce4700f702fb77fb95185b5b20b268d144f39 (patch)
tree11372214eb2d5b98f811643bab50a8c84acf9281
parent9de78488a29bf86f3e3eb777b3bdec55315b3fb9 (diff)
Removed map.xml patching of bootstrap resource loading methods in java.lang.ClassLoader.
-rw-r--r--openjdk/java/lang/ClassLoader.java22
-rw-r--r--openjdk/java/lang/LangHelper.java10
-rw-r--r--openjdk/map.xml14
-rw-r--r--runtime/openjdk.cs23
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);