зеркало из https://github.com/mono/ikvm-fork.git
Fixed regression introduced in 7.0 that caused the manifest to be ignored when creating the Package objects.
This commit is contained in:
Родитель
fdd8a0fb40
Коммит
eb146fb371
|
@ -91,6 +91,8 @@ public final class AssemblyClassLoader extends ClassLoader
|
|||
@Internal
|
||||
public static native String[] GetPackages(Assembly assembly);
|
||||
|
||||
private static native URL GetManifest(Assembly assembly);
|
||||
|
||||
private synchronized void lazyDefinePackagesCheck()
|
||||
{
|
||||
if(!packagesDefined)
|
||||
|
@ -120,7 +122,11 @@ public final class AssemblyClassLoader extends ClassLoader
|
|||
{
|
||||
if(assembly != null)
|
||||
{
|
||||
return new Manifest(gnu.java.net.protocol.ikvmres.Handler.readResourceFromAssembly(assembly, "/META-INF/MANIFEST.MF"));
|
||||
URL url = GetManifest(assembly);
|
||||
if (url != null)
|
||||
{
|
||||
return new Manifest(url.openStream());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (MalformedURLException _)
|
||||
|
|
|
@ -234,6 +234,20 @@ namespace IKVM.NativeCode.ikvm.runtime
|
|||
}
|
||||
}
|
||||
|
||||
public static global::java.net.URL GetManifest(Assembly assembly)
|
||||
{
|
||||
#if FIRST_PASS
|
||||
return null;
|
||||
#else
|
||||
IKVM.Internal.AssemblyClassLoader wrapper = IKVM.Internal.AssemblyClassLoader.FromAssembly(assembly);
|
||||
foreach (global::java.net.URL url in wrapper.FindResources("META-INF/MANIFEST.MF"))
|
||||
{
|
||||
return url;
|
||||
}
|
||||
return null;
|
||||
#endif
|
||||
}
|
||||
|
||||
public static global::java.net.URL getResource(global::java.lang.ClassLoader classLoader, Assembly assembly, string name)
|
||||
{
|
||||
#if FIRST_PASS
|
||||
|
|
Загрузка…
Ссылка в новой задаче