perform bounds checking when we try to index into a vector, in LineGap's 'getLineNumberOfIdx' helper functions

This commit is contained in:
2025-09-13 03:32:35 +01:00
parent 5d2a2ef737
commit db6fd56aca

View File

@@ -2662,12 +2662,12 @@ struct
curLine
else
let
val prevLine = curLine - Vector.length lhd
val relativeIdx = findIdx - prevIdx
val relativeLine = binSearch (relativeIdx, lhd)
val lineOffset = Vector.sub (lhd, relativeLine)
val prevLine = curLine - Vector.length lhd
in
prevLine + lineOffset
if relativeLine < 0 then prevLine
else Vector.sub (lhd, relativeLine) + prevLine
end
else
let val prevLine = curLine - Vector.length lhd
@@ -2691,7 +2691,8 @@ struct
let
val relativeIdx = findIdx - curIdx
val relativeLine = binSearch (relativeIdx, lhd)
val lineOffset = Vector.sub (lhd, relativeLine)
val lineOffset =
if relativeLine < 0 then 0 else Vector.sub (lhd, relativeLine)
in
curLine + lineOffset
end