From 5def02a589a2c1653f4bb515fdec290361a222be Mon Sep 17 00:00:00 2001 From: lhchavez Date: Tue, 1 Dec 2020 19:11:41 -0800 Subject: The big Callback type adjustment of 2020 This change makes all callbacks that can fail return an `error`. This makes things a lot more idiomatic. --- tree.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'tree.go') diff --git a/tree.go b/tree.go index 14fe7e4..b1aeaa7 100644 --- a/tree.go +++ b/tree.go @@ -8,7 +8,6 @@ extern int _go_git_treewalk(git_tree *tree, git_treewalk_mode mode, void *ptr); import "C" import ( - "errors" "runtime" "unsafe" ) @@ -121,7 +120,7 @@ func (t *Tree) EntryCount() uint64 { return uint64(num) } -type TreeWalkCallback func(string, *TreeEntry) int +type TreeWalkCallback func(string, *TreeEntry) error type treeWalkCallbackData struct { callback TreeWalkCallback errorTarget *error @@ -134,9 +133,9 @@ func treeWalkCallback(_root *C.char, entry *C.git_tree_entry, ptr unsafe.Pointer panic("invalid treewalk callback") } - ret := data.callback(C.GoString(_root), newTreeEntry(entry)) - if ret < 0 { - *data.errorTarget = errors.New(ErrorCode(ret).String()) + err := data.callback(C.GoString(_root), newTreeEntry(entry)) + if err != nil { + *data.errorTarget = err return C.int(ErrorCodeUser) } -- cgit v1.2.3