diff options
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) } |
