From f0be93bfa2cb49ab88595478efb4457391d49a31 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Sun, 5 May 2013 19:34:14 +0300 Subject: [PATCH] handle invalid data in --def --- compiler/suggest.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/suggest.nim b/compiler/suggest.nim index 273347ef3f..18e6dbddfc 100644 --- a/compiler/suggest.nim +++ b/compiler/suggest.nim @@ -272,6 +272,7 @@ proc addToSourceMap(sym: Psym, info: TLineInfo) = gSourceMaps[info.fileIndex].lines[info.line].entries.add(TEntry(pos: info.col, sym: sym)) proc defFromLine(entries: var seq[TEntry], col: int32) = + if entries == nil: return # The sorting is done lazily here on purpose. # No need to pay the price for it unless the user requests # "goto definition" on a particular line @@ -288,8 +289,10 @@ proc defFromLine(entries: var seq[TEntry], col: int32) = return proc defFromSourceMap*(i: TLineInfo) = - InternalAssert i.fileIndex < gSourceMaps.len and - i.line < gSourceMaps[i.fileIndex].lines.len + if not ((i.fileIndex < gSourceMaps.len) and + (gSourceMaps[i.fileIndex].lines != nil) and + (i.line < gSourceMaps[i.fileIndex].lines.len)): return + defFromLine(gSourceMaps[i.fileIndex].lines[i.line].entries, i.col) proc suggestSym*(n: PNode, s: PSym) {.inline.} =