From 818f68ec53ce3c2c88064bbbc9cc3249917b8a00 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 24 Aug 2022 20:47:00 +0530 Subject: [PATCH] Initialize various maps --- tools/tui/key-encoding.go | 3 +++ tools/tui/loop.go | 4 ++-- tools/tui/select.go | 8 ++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tools/tui/key-encoding.go b/tools/tui/key-encoding.go index 339fdab24..79a06d758 100644 --- a/tools/tui/key-encoding.go +++ b/tools/tui/key-encoding.go @@ -151,6 +151,9 @@ type ParsedShortcut struct { var parsed_shortcut_cache map[string]ParsedShortcut func ParseShortcut(spec string) *ParsedShortcut { + if parsed_shortcut_cache == nil { + parsed_shortcut_cache = make(map[string]ParsedShortcut, 128) + } if val, ok := parsed_shortcut_cache[spec]; ok { return &val } diff --git a/tools/tui/loop.go b/tools/tui/loop.go index 14d09e5da..f7a930be5 100644 --- a/tools/tui/loop.go +++ b/tools/tui/loop.go @@ -209,7 +209,7 @@ func (self *Loop) Run() (err error) { return nil } - var selector Select + selector := CreateSelect(8) selector.RegisterRead(int(signal_read_file.Fd())) selector.RegisterRead(tty_fd) @@ -318,10 +318,10 @@ func (self *Loop) write_to_tty() error { } func (self *Loop) flush() error { - var selector Select if self.controlling_term == nil { return nil } + selector := CreateSelect(1) selector.RegisterWrite(self.controlling_term.Fd()) deadline := time.Now().Add(2 * time.Second) for len(self.write_buf) > 0 { diff --git a/tools/tui/select.go b/tools/tui/select.go index 571ffdb03..8eb665ef6 100644 --- a/tools/tui/select.go +++ b/tools/tui/select.go @@ -13,6 +13,14 @@ type Select struct { read_fds, write_fds, err_fds map[int]bool } +func CreateSelect(expected_number_of_fds int) *Select { + var ans Select + ans.read_fds = make(map[int]bool, expected_number_of_fds) + ans.write_fds = make(map[int]bool, expected_number_of_fds) + ans.err_fds = make(map[int]bool, expected_number_of_fds) + return &ans +} + func (self *Select) register(fd int, fdset *map[int]bool) { (*fdset)[fd] = true }