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>2011-12-08 15:10:11 +0400
committerjfrijters <jfrijters>2011-12-08 15:10:11 +0400
commit96080f9b8227f74d3f3618f9f9a3adbd976c3a33 (patch)
treea7dc95e8ce1079325795d287faefb8f208e646ce
parent6110e41d565f2de7d18e3d590fbc18d9802a4f2a (diff)
Fixed unloadable corner case (that only only be generated by playing weird class loader tricks).
-rw-r--r--runtime/DynamicTypeWrapper.cs8
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/DynamicTypeWrapper.cs b/runtime/DynamicTypeWrapper.cs
index 4c97be02..f38d20f3 100644
--- a/runtime/DynamicTypeWrapper.cs
+++ b/runtime/DynamicTypeWrapper.cs
@@ -1159,9 +1159,9 @@ namespace IKVM.Internal
bool unloadableOverrideStub = false;
if (mw.ReturnType != baseMethod.ReturnType)
{
- if (baseMethod.ReturnType.IsUnloadable || JVM.FinishingForDebugSave)
+ if (mw.ReturnType.IsUnloadable || baseMethod.ReturnType.IsUnloadable || JVM.FinishingForDebugSave)
{
- if (!mw.ReturnType.IsUnloadable || (!baseMethod.ReturnType.IsUnloadable && JVM.FinishingForDebugSave))
+ if (mw.ReturnType.IsUnloadable != baseMethod.ReturnType.IsUnloadable || JVM.FinishingForDebugSave)
{
unloadableOverrideStub = true;
}
@@ -1180,9 +1180,9 @@ namespace IKVM.Internal
{
if (here[i] != there[i])
{
- if (there[i].IsUnloadable || JVM.FinishingForDebugSave)
+ if (here[i].IsUnloadable || there[i].IsUnloadable || JVM.FinishingForDebugSave)
{
- if (!here[i].IsUnloadable || (!there[i].IsUnloadable && JVM.FinishingForDebugSave))
+ if (here[i].IsUnloadable != there[i].IsUnloadable || JVM.FinishingForDebugSave)
{
unloadableOverrideStub = true;
}