зеркало из https://github.com/mono/ikvm-fork.git
Don't cache inner classes.
This commit is contained in:
Родитель
ce1e5be3fc
Коммит
e58a6a1d13
|
@ -3799,7 +3799,6 @@ namespace IKVM.Internal
|
|||
{
|
||||
private readonly Type type;
|
||||
private TypeWrapper[] interfaces;
|
||||
private TypeWrapper[] innerclasses;
|
||||
private MethodInfo clinitMethod;
|
||||
private bool clinitMethodSet;
|
||||
private Modifiers reflectiveModifiers;
|
||||
|
@ -4184,25 +4183,20 @@ namespace IKVM.Internal
|
|||
{
|
||||
get
|
||||
{
|
||||
// TODO why are we caching this?
|
||||
if(innerclasses == null)
|
||||
Type[] nestedTypes = type.GetNestedTypes(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
|
||||
List<TypeWrapper> wrappers = new List<TypeWrapper>();
|
||||
for(int i = 0; i < nestedTypes.Length; i++)
|
||||
{
|
||||
Type[] nestedTypes = type.GetNestedTypes(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
|
||||
List<TypeWrapper> wrappers = new List<TypeWrapper>();
|
||||
for(int i = 0; i < nestedTypes.Length; i++)
|
||||
if(!AttributeHelper.IsHideFromJava(nestedTypes[i]) && !nestedTypes[i].Name.StartsWith("__<"))
|
||||
{
|
||||
if(!AttributeHelper.IsHideFromJava(nestedTypes[i]) && !nestedTypes[i].Name.StartsWith("__<"))
|
||||
{
|
||||
wrappers.Add(ClassLoaderWrapper.GetWrapperFromType(nestedTypes[i]));
|
||||
}
|
||||
wrappers.Add(ClassLoaderWrapper.GetWrapperFromType(nestedTypes[i]));
|
||||
}
|
||||
foreach(string s in AttributeHelper.GetNonNestedInnerClasses(type))
|
||||
{
|
||||
wrappers.Add(GetClassLoader().LoadClassByDottedName(s));
|
||||
}
|
||||
innerclasses = wrappers.ToArray();
|
||||
}
|
||||
return innerclasses;
|
||||
foreach(string s in AttributeHelper.GetNonNestedInnerClasses(type))
|
||||
{
|
||||
wrappers.Add(GetClassLoader().LoadClassByDottedName(s));
|
||||
}
|
||||
return wrappers.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче