From 0f2671c9df4583bd058e93b44cd14619f17ae24b Mon Sep 17 00:00:00 2001 From: jfrijters Date: Tue, 15 Jan 2013 14:17:42 +0000 Subject: Fixed the base type check (if the immediate parent failed we didn't have a valid prev). --- runtime/DynamicTypeWrapper.cs | 9 ++++----- 1 file 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; -- cgit v1.2.3