Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2013-01-15 18:17:42 +0400
committerjfrijters <jfrijters>2013-01-15 18:17:42 +0400
commit0f2671c9df4583bd058e93b44cd14619f17ae24b (patch)
tree090b90b0601453d8f5eabb13f7c8affd500c95b4
parent99c87eacc7253c581ab44b4a0c847b3a8dfc5ace (diff)
Fixed the base type check (if the immediate parent failed we didn't have a valid prev).
-rw-r--r--runtime/DynamicTypeWrapper.cs9
1 files changed, 4 insertions, 5 deletions
diff --git a/runtime/DynamicTypeWrapper.cs b/runtime/DynamicTypeWrapper.cs
index 549c7ead..85e99b08 100644
--- a/runtime/DynamicTypeWrapper.cs
+++ b/runtime/DynamicTypeWrapper.cs
@@ -60,21 +60,20 @@ namespace IKVM.Internal
#endif
private MethodBase automagicSerializationCtor;
- private static TypeWrapper LoadTypeWrapper(ClassLoaderWrapper classLoader, string name)
+ private TypeWrapper LoadTypeWrapper(ClassLoaderWrapper classLoader, string name)
{
TypeWrapper tw = classLoader.LoadClassByDottedNameFast(name);
if (tw == null)
{
throw new NoClassDefFoundError(name);
}
- CheckMissing(tw);
+ CheckMissing(this, tw);
return tw;
}
- private static void CheckMissing(TypeWrapper tw)
+ private static void CheckMissing(TypeWrapper prev, TypeWrapper tw)
{
#if STATIC_COMPILER
- TypeWrapper prev = tw;
do
{
UnloadableTypeWrapper missing = tw as UnloadableTypeWrapper;
@@ -86,7 +85,7 @@ namespace IKVM.Internal
}
foreach (TypeWrapper iface in tw.Interfaces)
{
- CheckMissing(iface);
+ CheckMissing(tw, iface);
}
prev = tw;
tw = tw.BaseTypeWrapper;