Make "classpath" build target build again.

This commit is contained in:
jfrijters 2007-10-24 04:24:12 +00:00
Родитель 8a79587e64
Коммит 191dbcb00e
3 изменённых файлов: 20 добавлений и 4 удалений

Просмотреть файл

@ -41,13 +41,15 @@ public class LibraryVMInterfaceImpl implements ikvm.internal.LibraryVMInterface
{
public Object newClass(Object wrapper, Object protectionDomain, Object classLoader)
{
if(protectionDomain == null && classLoader instanceof AssemblyClassLoader)
if(protectionDomain == null)
{
protectionDomain = ((AssemblyClassLoader)classLoader).getProtectionDomain();
protectionDomain = getProtectionDomain((java.lang.ClassLoader)classLoader);
}
return new Class(wrapper, (java.security.ProtectionDomain)protectionDomain);
}
private static native java.security.ProtectionDomain getProtectionDomain(java.lang.ClassLoader classLoader);
public Object newField(Object clazz, Object wrapper)
{
return VMFieldImpl.newField((Class)clazz, wrapper);

Просмотреть файл

@ -129,6 +129,11 @@ final class VMClassLoader
*/
static native Class loadClass(String name, boolean resolve) throws ClassNotFoundException;
private static cli.System.Reflection.Assembly getBootstrapAssembly()
{
return ikvm.runtime.Util.getInstanceTypeFromClass(Object.class).get_Assembly();
}
/**
* Helper to load a resource from the bootstrap class loader.
*
@ -137,7 +142,7 @@ final class VMClassLoader
*/
static URL getResource(String name)
{
return ikvm.internal.AssemblyClassLoader.getResource(null, name);
return ikvm.internal.AssemblyClassLoader.getResource(null, getBootstrapAssembly(), name);
}
/**
@ -149,7 +154,7 @@ final class VMClassLoader
*/
static Enumeration getResources(String name) throws IOException
{
return ikvm.internal.AssemblyClassLoader.getResources(null, name);
return ikvm.internal.AssemblyClassLoader.getResources(null, getBootstrapAssembly(), name);
}
/**

Просмотреть файл

@ -390,6 +390,15 @@ namespace IKVM.NativeCode.java
}
}
public class LibraryVMInterfaceImpl
{
public static object getProtectionDomain(object classLoader)
{
AssemblyClassLoader acl = ClassLoaderWrapper.GetClassLoaderWrapper(classLoader) as AssemblyClassLoader;
return acl != null ? acl.GetProtectionDomain() : null;
}
}
public class VMRuntime
{
public static int nativeLoad(string filename, object classLoader)