From c96aaf39bbea9cf9fc4045a886911fa4c7b314aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Thu, 13 Apr 2006 21:08:44 +0000 Subject: [PATCH] Implemented evaluation of properties on value types git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1305 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/Variables/ObjectValue.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs index a7a3145aa5..71c8d0daa2 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs @@ -171,7 +171,7 @@ namespace Debugger if (updatedVal is UnavailableValue) { return null; } - if (this.IsEquivalentValue(updatedVal) && ((ObjectValue)updatedVal).SoftReference != null) { + if (this.IsEquivalentValue(updatedVal)) { ICorDebugFunction evalCorFunction = Module.CorModule.GetFunctionFromToken(method.Token); return new Eval(debugger, evalCorFunction, delegate { return GetArgsForEval(method, getter); }); @@ -182,12 +182,16 @@ namespace Debugger ICorDebugValue[] GetArgsForEval(MethodProps method, ValueGetter getter) { - Value updatedVal = getter(); - if (this.IsEquivalentValue(updatedVal) && ((ObjectValue)updatedVal).SoftReference != null) { + ObjectValue updatedVal = (ObjectValue)getter(); + if (this.IsEquivalentValue(updatedVal)) { if (method.IsStatic) { return new ICorDebugValue[] {}; } else { - return new ICorDebugValue[] {((ObjectValue)updatedVal).SoftReference.CastTo()}; + if (updatedVal.SoftReference != null) { + return new ICorDebugValue[] {updatedVal.SoftReference.CastTo()}; + } else { + return new ICorDebugValue[] {updatedVal.CorValue}; + } } } else { return null;