You've already forked linux-packaging-mono
Imported Upstream version 3.10.0
Former-commit-id: 172c8e3c300b39d5785c7a3e8dfb08ebdbc1a99b
This commit is contained in:
33
external/ikvm/runtime/AssemblyClassLoader.cs
vendored
33
external/ikvm/runtime/AssemblyClassLoader.cs
vendored
@@ -746,8 +746,16 @@ namespace IKVM.Internal
|
||||
using (java.io.InputStream inp = url.openStream())
|
||||
{
|
||||
byte[] buf = new byte[inp.available()];
|
||||
inp.read(buf, 0, buf.Length);
|
||||
return TypeWrapper.FromClass(IKVM.NativeCode.java.lang.ClassLoader.defineClass1(GetJavaClassLoader(), name, buf, 0, buf.Length, GetProtectionDomain(), null));
|
||||
for (int pos = 0; pos < buf.Length; )
|
||||
{
|
||||
int read = inp.read(buf, pos, buf.Length - pos);
|
||||
if (read <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
pos += read;
|
||||
}
|
||||
return TypeWrapper.FromClass(Java_java_lang_ClassLoader.defineClass1(GetJavaClassLoader(), name, buf, 0, buf.Length, GetProtectionDomain(), null));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -860,7 +868,7 @@ namespace IKVM.Internal
|
||||
if (!found && unmangledName.EndsWith(".class", StringComparison.Ordinal) && unmangledName.IndexOf('.') == unmangledName.Length - 6)
|
||||
{
|
||||
TypeWrapper tw = FindLoadedClass(unmangledName.Substring(0, unmangledName.Length - 6).Replace('/', '.'));
|
||||
if (tw != null && tw.GetClassLoader() == this && !tw.IsArray && !(tw is DynamicTypeWrapper))
|
||||
if (tw != null && tw.GetClassLoader() == this && !tw.IsArray && !tw.IsDynamic)
|
||||
{
|
||||
#if !FIRST_PASS
|
||||
yield return new java.io.File(VirtualFileSystem.GetAssemblyClassesPath(assemblyLoader.Assembly) + unmangledName).toURI().toURL();
|
||||
@@ -1103,28 +1111,23 @@ namespace IKVM.Internal
|
||||
LazyInitExports();
|
||||
lock (this)
|
||||
{
|
||||
Array.Resize(ref delegates, delegates.Length + 1);
|
||||
delegates[delegates.Length - 1] = acl;
|
||||
delegates = ArrayUtil.Concat(delegates, acl);
|
||||
}
|
||||
}
|
||||
|
||||
#if !STATIC_COMPILER && !STUB_GENERATOR
|
||||
internal string[] GetPackages()
|
||||
internal List<KeyValuePair<string, string[]>> GetPackageInfo()
|
||||
{
|
||||
string[] packages = new string[0];
|
||||
List<KeyValuePair<string, string[]>> list = new List<KeyValuePair<string, string[]>>();
|
||||
foreach (Module m in assemblyLoader.Assembly.GetModules(false))
|
||||
{
|
||||
object[] attr = m.GetCustomAttributes(typeof(PackageListAttribute), false);
|
||||
foreach (PackageListAttribute p in attr)
|
||||
{
|
||||
string[] mp = p.GetPackages();
|
||||
string[] tmp = new string[packages.Length + mp.Length];
|
||||
Array.Copy(packages, 0, tmp, 0, packages.Length);
|
||||
Array.Copy(mp, 0, tmp, packages.Length, mp.Length);
|
||||
packages = tmp;
|
||||
list.Add(new KeyValuePair<string, string[]>(p.jar, p.packages));
|
||||
}
|
||||
}
|
||||
return packages;
|
||||
return list;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1313,6 +1316,10 @@ namespace IKVM.Internal
|
||||
return base.GetWrapperFromAssemblyType(type);
|
||||
}
|
||||
|
||||
protected override void CheckProhibitedPackage(string className)
|
||||
{
|
||||
}
|
||||
|
||||
#if !FIRST_PASS && !STATIC_COMPILER && !STUB_GENERATOR
|
||||
internal override java.lang.ClassLoader GetJavaClassLoader()
|
||||
{
|
||||
|
Reference in New Issue
Block a user