From 0faa0c07274fe1607efe86e5acd3b9c9a7fdb4eb Mon Sep 17 00:00:00 2001 From: aurc <54873456+aurc@users.noreply.github.com> Date: Mon, 1 Aug 2022 20:34:51 +1000 Subject: [PATCH] Fixed array out of bonds after first tail selection --- internal/loggo/log_view.go | 8 ++++---- internal/loggo/log_view_readers.go | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/loggo/log_view.go b/internal/loggo/log_view.go index cae790d..d95e0ab 100644 --- a/internal/loggo/log_view.go +++ b/internal/loggo/log_view.go @@ -115,7 +115,7 @@ func (l *LogView) makeUIComponents() { logView: l, } selection := func(row, column int) { - if row > 0 { + if row > 0 && row-1 < len(l.finSlice) { l.jsonView = NewJsonView(l.app, false, func() { // Toggle full screen func @@ -124,10 +124,10 @@ func (l *LogView) makeUIComponents() { }, l.makeLayouts) l.jsonView.SetBorder(true).SetTitle("Log Entry") var b []byte - if _, ok := l.inSlice[row-1][config.ParseErr]; ok { - b = []byte(fmt.Sprintf(`%v`, l.inSlice[row-1][config.TextPayload])) + if _, ok := l.finSlice[row-1][config.ParseErr]; ok { + b = []byte(fmt.Sprintf(`%v`, l.finSlice[row-1][config.TextPayload])) } else { - b, _ = json.Marshal(l.inSlice[row-1]) + b, _ = json.Marshal(l.finSlice[row-1]) } l.jsonView.SetJson(b) l.makeLayoutsWithJsonView() diff --git a/internal/loggo/log_view_readers.go b/internal/loggo/log_view_readers.go index 164461a..4efe08c 100644 --- a/internal/loggo/log_view_readers.go +++ b/internal/loggo/log_view_readers.go @@ -121,6 +121,8 @@ func (l *LogView) sampleAndCount() { } func (l *LogView) filterLine(e *filter.Expression, index int) error { + l.filterLock.Lock() + defer l.filterLock.Unlock() row := l.inSlice[index] if e == nil { l.finSlice = append(l.finSlice, row)