diff options
| author | lhchavez <[email protected]> | 2020-12-01 19:11:41 -0800 |
|---|---|---|
| committer | lhchavez <[email protected]> | 2021-09-05 18:52:01 -0700 |
| commit | 5def02a589a2c1653f4bb515fdec290361a222be (patch) | |
| tree | b99d3a8204c27c902f711bc4f8f8b48baa8352bb /deprecated.go | |
| parent | 70e5e419cf0cab31553b106267a0296f3cd672d9 (diff) | |
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.
Diffstat (limited to 'deprecated.go')
| -rw-r--r-- | deprecated.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/deprecated.go b/deprecated.go index 587fd0e..5e69a51 100644 --- a/deprecated.go +++ b/deprecated.go @@ -230,7 +230,11 @@ func SubmoduleVisitor(csub unsafe.Pointer, name *C.char, handle unsafe.Pointer) if !ok { panic("invalid submodule visitor callback") } - return (C.int)(callback(sub, C.GoString(name))) + err := callback(sub, C.GoString(name)) + if err != nil { + return C.int(ErrorCodeUser) + } + return C.int(ErrorCodeOK) } // tree.go @@ -239,9 +243,13 @@ func SubmoduleVisitor(csub unsafe.Pointer, name *C.char, handle unsafe.Pointer) func CallbackGitTreeWalk(_root *C.char, entry *C.git_tree_entry, ptr unsafe.Pointer) C.int { root := C.GoString(_root) - if callback, ok := pointerHandles.Get(ptr).(TreeWalkCallback); ok { - return C.int(callback(root, newTreeEntry(entry))) - } else { + callback, ok := pointerHandles.Get(ptr).(TreeWalkCallback) + if !ok { panic("invalid treewalk callback") } + err := callback(root, newTreeEntry(entry)) + if err != nil { + return C.int(ErrorCodeUser) + } + return C.int(ErrorCodeOK) } |
