summaryrefslogtreecommitdiff
path: root/deprecated.go
diff options
context:
space:
mode:
authorlhchavez <[email protected]>2020-12-01 19:11:41 -0800
committerlhchavez <[email protected]>2021-09-05 18:52:01 -0700
commit5def02a589a2c1653f4bb515fdec290361a222be (patch)
treeb99d3a8204c27c902f711bc4f8f8b48baa8352bb /deprecated.go
parent70e5e419cf0cab31553b106267a0296f3cd672d9 (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.go16
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)
}