perform bounds checking when we try to index into a vector, in LineGap's 'getLineNumberOfIdx' helper functions
This commit is contained in:
@@ -2662,12 +2662,12 @@ struct
|
|||||||
curLine
|
curLine
|
||||||
else
|
else
|
||||||
let
|
let
|
||||||
|
val prevLine = curLine - Vector.length lhd
|
||||||
val relativeIdx = findIdx - prevIdx
|
val relativeIdx = findIdx - prevIdx
|
||||||
val relativeLine = binSearch (relativeIdx, lhd)
|
val relativeLine = binSearch (relativeIdx, lhd)
|
||||||
val lineOffset = Vector.sub (lhd, relativeLine)
|
|
||||||
val prevLine = curLine - Vector.length lhd
|
|
||||||
in
|
in
|
||||||
prevLine + lineOffset
|
if relativeLine < 0 then prevLine
|
||||||
|
else Vector.sub (lhd, relativeLine) + prevLine
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
let val prevLine = curLine - Vector.length lhd
|
let val prevLine = curLine - Vector.length lhd
|
||||||
@@ -2691,7 +2691,8 @@ struct
|
|||||||
let
|
let
|
||||||
val relativeIdx = findIdx - curIdx
|
val relativeIdx = findIdx - curIdx
|
||||||
val relativeLine = binSearch (relativeIdx, lhd)
|
val relativeLine = binSearch (relativeIdx, lhd)
|
||||||
val lineOffset = Vector.sub (lhd, relativeLine)
|
val lineOffset =
|
||||||
|
if relativeLine < 0 then 0 else Vector.sub (lhd, relativeLine)
|
||||||
in
|
in
|
||||||
curLine + lineOffset
|
curLine + lineOffset
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user