Browse Source

Fixed crash when using the "DefaultDebugger" instead of the debugger addin.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@498 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
cb26b53fa0
  1. 2
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  2. 55
      src/Main/Base/Project/Src/Dom/Implementations/AnonymousMethodReturnType.cs
  3. 42
      src/Main/Base/Project/Src/Dom/Implementations/NullReturnType.cs
  4. 7
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs
  5. 4
      src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs

2
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -702,6 +702,8 @@ @@ -702,6 +702,8 @@
<Compile Include="Src\Services\RefactoringService\FindReferencesAndRenameHelper.cs" />
<Compile Include="Src\Internal\Doozers\DirectoryDoozer.cs" />
<Compile Include="Src\Gui\Components\StringListEditor.cs" />
<Compile Include="Src\Dom\Implementations\NullReturnType.cs" />
<Compile Include="Src\Dom\Implementations\AnonymousMethodReturnType.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">

55
src/Main/Base/Project/Src/Dom/Implementations/AnonymousMethodReturnType.cs

@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom
{
/// <summary>
/// The return type of anonymous method expressions or lambda expressions.
/// </summary>
public sealed class AnonymousMethodReturnType : ProxyReturnType
{
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override IReturnType BaseType {
get {
return ReflectionReturnType.Delegate;
}
}
public override string Name {
get {
return "delegate";
}
}
public override string FullyQualifiedName {
get {
return Name;
}
}
public override string Namespace {
get {
return "";
}
}
public override string DotNetName {
get {
return Name;
}
}
}
}

42
src/Main/Base/Project/Src/Dom/Implementations/NullReturnType.cs

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom
{
/// <summary>The type of the 'null'/'nothing' literal.</summary>
[Serializable]
public sealed class NullReturnType : AbstractReturnType
{
public static readonly NullReturnType Instance = new NullReturnType();
public override bool Equals(object o)
{
return o is NullReturnType;
}
public override int GetHashCode()
{
return 0;
}
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override IClass GetUnderlyingClass() { return null; }
public override List<IMethod> GetMethods() { return new List<IMethod>(); }
public override List<IProperty> GetProperties() { return new List<IProperty>(); }
public override List<IField> GetFields() { return new List<IField>(); }
public override List<IEvent> GetEvents() { return new List<IEvent>(); }
}
}

7
src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs

@ -30,10 +30,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -30,10 +30,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(PrimitiveExpression primitiveExpression, object data)
{
if (primitiveExpression.Value != null) {
if (primitiveExpression.Value == null) {
return NullReturnType.Instance;
} else {
return ReflectionReturnType.CreatePrimitive(primitiveExpression.Value.GetType());
}
return null;
}
public override object Visit(BinaryOperatorExpression binaryOperatorExpression, object data)
@ -444,7 +445,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -444,7 +445,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(AnonymousMethodExpression anonymousMethodExpression, object data)
{
return ReflectionReturnType.Delegate;
return new AnonymousMethodReturnType();
}
public override object Visit(ArrayInitializerExpression arrayInitializerExpression, object data)

4
src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs

@ -57,8 +57,8 @@ namespace ICSharpCode.Core @@ -57,8 +57,8 @@ namespace ICSharpCode.Core
{
attachedProcess.Exited -= new EventHandler(AttachedProcessExited);
attachedProcess.Dispose();
attachedProcess = null;
OnDebugStopped(EventArgs.Empty);
attachedProcess = null;
WorkbenchSingleton.SafeThreadAsyncCall(this, "OnDebugStopped", EventArgs.Empty);
}
public void StartWithoutDebugging(ProcessStartInfo processStartInfo)

Loading…
Cancel
Save