diff options
author | jfrijters <jfrijters> | 2013-01-15 18:17:42 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2013-01-15 18:17:42 +0400 |
commit | 0f2671c9df4583bd058e93b44cd14619f17ae24b (patch) | |
tree | 090b90b0601453d8f5eabb13f7c8affd500c95b4 | |
parent | 99c87eacc7253c581ab44b4a0c847b3a8dfc5ace (diff) |
Fixed the base type check (if the immediate parent failed we didn't have a valid prev).
-rw-r--r-- | runtime/DynamicTypeWrapper.cs | 9 |
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; |