diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2021-04-01 09:25:11 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2021-04-02 11:00:15 +1100 |
commit | 949c7726d1c7a6e8491577212daac732807b24f9 (patch) | |
tree | 79edec1111ace86187b1a8303c2d9d0d6794168c /pkg/gui/filetree | |
parent | 0b7bda291ccbdd0a134832747d5d4ebfa41ecb4c (diff) |
fix bug caused by interface
Diffstat (limited to 'pkg/gui/filetree')
-rw-r--r-- | pkg/gui/filetree/commit_file_manager.go | 5 | ||||
-rw-r--r-- | pkg/gui/filetree/file_manager.go | 5 | ||||
-rw-r--r-- | pkg/gui/filetree/inode.go | 3 |
3 files changed, 10 insertions, 3 deletions
diff --git a/pkg/gui/filetree/commit_file_manager.go b/pkg/gui/filetree/commit_file_manager.go index 3fd89b63e..e80528bcb 100644 --- a/pkg/gui/filetree/commit_file_manager.go +++ b/pkg/gui/filetree/commit_file_manager.go @@ -89,6 +89,11 @@ func (m *CommitFileManager) ToggleCollapsed(path string) { } func (m *CommitFileManager) Render(diffName string, patchManager *patch.PatchManager) []string { + // can't rely on renderAux to check for nil because an interface won't be nil if its concrete value is nil + if m.tree == nil { + return []string{} + } + return renderAux(m.tree, m.collapsedPaths, "", -1, func(n INode, depth int) string { castN := n.(*CommitFileNode) diff --git a/pkg/gui/filetree/file_manager.go b/pkg/gui/filetree/file_manager.go index 6fd688bc2..2ea9915cc 100644 --- a/pkg/gui/filetree/file_manager.go +++ b/pkg/gui/filetree/file_manager.go @@ -81,6 +81,11 @@ func (m *FileManager) ToggleCollapsed(path string) { } func (m *FileManager) Render(diffName string, submoduleConfigs []*models.SubmoduleConfig) []string { + // can't rely on renderAux to check for nil because an interface won't be nil if its concrete value is nil + if m.tree == nil { + return []string{} + } + return renderAux(m.tree, m.collapsedPaths, "", -1, func(n INode, depth int) string { castN := n.(*FileNode) return presentation.GetFileLine(castN.GetHasUnstagedChanges(), castN.GetHasStagedChanges(), castN.NameAtDepth(depth), diffName, submoduleConfigs, castN.File) diff --git a/pkg/gui/filetree/inode.go b/pkg/gui/filetree/inode.go index 4357f3a8a..cdbc82dcd 100644 --- a/pkg/gui/filetree/inode.go +++ b/pkg/gui/filetree/inode.go @@ -215,9 +215,6 @@ func getLeaves(node INode) []INode { func renderAux(s INode, collapsedPaths CollapsedPaths, prefix string, depth int, renderLine func(INode, int) string) []string { isRoot := depth == -1 - if s == nil { - return []string{} - } renderLineWithPrefix := func() string { return prefix + renderLine(s, depth) |