Imported Upstream version 4.2.0.179

Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent 183bba2c9a
commit 6992685b86
7507 changed files with 90259 additions and 657307 deletions

View File

@@ -322,16 +322,21 @@ static class Java_java_lang_Class
{
return null;
}
decl = decl.EnsureLoadable(wrapper.GetClassLoader());
if (!decl.IsAccessibleFrom(wrapper))
{
throw new IllegalAccessError(string.Format("tried to access class {0} from class {1}", decl.Name, wrapper.Name));
}
decl.Finish();
if (Array.IndexOf(decl.InnerClasses, wrapper) == -1)
TypeWrapper[] declInner = decl.InnerClasses;
for (int i = 0; i < declInner.Length; i++)
{
throw new IncompatibleClassChangeError(string.Format("{0} and {1} disagree on InnerClasses attribute", decl.Name, wrapper.Name));
if (declInner[i].Name == wrapper.Name && declInner[i].EnsureLoadable(decl.GetClassLoader()) == wrapper)
{
return decl.ClassObject;
}
}
return decl.ClassObject;
throw new IncompatibleClassChangeError(string.Format("{0} and {1} disagree on InnerClasses attribute", decl.Name, wrapper.Name));
}
catch (RetargetableJavaException x)
{
@@ -618,16 +623,13 @@ static class Java_java_lang_Class
java.lang.Class[] innerclasses = new java.lang.Class[wrappers.Length];
for (int i = 0; i < innerclasses.Length; i++)
{
if (wrappers[i].IsUnloadable)
TypeWrapper tw = wrappers[i].EnsureLoadable(wrapper.GetClassLoader());
if (!tw.IsAccessibleFrom(wrapper))
{
throw new java.lang.NoClassDefFoundError(wrappers[i].Name);
throw new IllegalAccessError(string.Format("tried to access class {0} from class {1}", tw.Name, wrapper.Name));
}
if (!wrappers[i].IsAccessibleFrom(wrapper))
{
throw new IllegalAccessError(string.Format("tried to access class {0} from class {1}", wrappers[i].Name, wrapper.Name));
}
wrappers[i].Finish();
innerclasses[i] = wrappers[i].ClassObject;
tw.Finish();
innerclasses[i] = tw.ClassObject;
}
return innerclasses;
}