зеркало из https://github.com/mono/ikvm-fork.git
Make "classpath" build target build again.
This commit is contained in:
Родитель
8a79587e64
Коммит
191dbcb00e
|
@ -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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче