Browse Source

Protect against resolve call on empty location.

pull/512/head
Daniel Grunwald 11 years ago
parent
commit
3dbfb428bd
  1. 2
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  2. 4
      src/Main/SharpDevelop/Parser/ParserService.cs

2
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -633,6 +633,8 @@ namespace ICSharpCode.SharpDevelop.Services @@ -633,6 +633,8 @@ namespace ICSharpCode.SharpDevelop.Services
return;
if (CurrentStackFrame == null)
return;
if (e.InDocument)
return;
var resolveResult = SD.ParserService.Resolve(e.Editor, e.LogicalPosition, CurrentStackFrame.AppDomain.Compilation);
if (resolveResult == null)
return;

4
src/Main/SharpDevelop/Parser/ParserService.cs

@ -278,7 +278,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -278,7 +278,7 @@ namespace ICSharpCode.SharpDevelop.Parser
public ResolveResult Resolve(FileName fileName, TextLocation location, ITextSource fileContent, ICompilation compilation, CancellationToken cancellationToken)
{
var entry = GetFileEntry(fileName, true);
if (entry.parser == null)
if (entry.parser == null || location.IsEmpty)
return ErrorResolveResult.UnknownError;
IProject project = compilation != null ? compilation.GetProject() : null;
var parseInfo = entry.Parse(fileContent, project, cancellationToken);
@ -334,7 +334,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -334,7 +334,7 @@ namespace ICSharpCode.SharpDevelop.Parser
public Task<ResolveResult> ResolveAsync(FileName fileName, TextLocation location, ITextSource fileContent, ICompilation compilation, CancellationToken cancellationToken)
{
var entry = GetFileEntry(fileName, true);
if (entry.parser == null)
if (entry.parser == null || location.IsEmpty)
return Task.FromResult<ResolveResult>(ErrorResolveResult.UnknownError);
IProject project = compilation != null ? compilation.GetProject() : null;
return entry.ParseAsync(fileContent, project, cancellationToken).ContinueWith(

Loading…
Cancel
Save