From 53d56d032c4e806f6a914ea1d30a594e16bbe713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Karl?= <3951388+JoeKar@users.noreply.github.com> Date: Thu, 4 Apr 2024 21:26:53 +0200 Subject: [PATCH] buffer: Remove unneeded recursion of `insert()` This is necessary as a preparation to introduce a lock for the whole LineArray. The modification can then be done without trying to lock the same lock twice. Co-authored-by: Dmytro Maluka --- internal/buffer/line_array.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/buffer/line_array.go b/internal/buffer/line_array.go index a906b1f4..7323dc1d 100644 --- a/internal/buffer/line_array.go +++ b/internal/buffer/line_array.go @@ -233,14 +233,14 @@ func (la *LineArray) insertByte(pos Loc, value byte) { // joinLines joins the two lines a and b func (la *LineArray) joinLines(a, b int) { - la.insert(Loc{len(la.lines[a].data), a}, la.lines[b].data) + la.lines[a].data = append(la.lines[a].data, la.lines[b].data...) la.deleteLine(b) } // split splits a line at a given position func (la *LineArray) split(pos Loc) { la.newlineBelow(pos.Y) - la.insert(Loc{0, pos.Y + 1}, la.lines[pos.Y].data[pos.X:]) + la.lines[pos.Y+1].data = append(la.lines[pos.Y+1].data, la.lines[pos.Y].data[pos.X:]...) la.lines[pos.Y+1].state = la.lines[pos.Y].state la.lines[pos.Y].state = nil la.lines[pos.Y].match = nil