summaryrefslogtreecommitdiff
path: root/reference.go
diff options
context:
space:
mode:
Diffstat (limited to 'reference.go')
-rw-r--r--reference.go45
1 files changed, 30 insertions, 15 deletions
diff --git a/reference.go b/reference.go
index 4a839a7..d246c55 100644
--- a/reference.go
+++ b/reference.go
@@ -40,12 +40,17 @@ func (v *Reference) SetSymbolicTarget(target string, sig *Signature, msg string)
csig := sig.toC()
defer C.free(unsafe.Pointer(csig))
- cmsg := C.CString(msg)
- defer C.free(unsafe.Pointer(cmsg))
+ var cmsg *C.char
+ if msg == "" {
+ cmsg = nil
+ } else {
+ cmsg = C.CString(msg)
+ defer C.free(unsafe.Pointer(cmsg))
+ }
ret := C.git_reference_symbolic_set_target(&ptr, v.ptr, ctarget, csig, cmsg)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
return newReferenceFromC(ptr), nil
@@ -60,12 +65,17 @@ func (v *Reference) SetTarget(target *Oid, sig *Signature, msg string) (*Referen
csig := sig.toC()
defer C.free(unsafe.Pointer(csig))
- cmsg := C.CString(msg)
- defer C.free(unsafe.Pointer(cmsg))
+ var cmsg *C.char
+ if msg == "" {
+ cmsg = nil
+ } else {
+ cmsg = C.CString(msg)
+ defer C.free(unsafe.Pointer(cmsg))
+ }
ret := C.git_reference_set_target(&ptr, v.ptr, target.toC(), csig, cmsg)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
return newReferenceFromC(ptr), nil
@@ -79,7 +89,7 @@ func (v *Reference) Resolve() (*Reference, error) {
ret := C.git_reference_resolve(&ptr, v.ptr)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
return newReferenceFromC(ptr), nil
@@ -93,8 +103,13 @@ func (v *Reference) Rename(name string, force bool, sig *Signature, msg string)
csig := sig.toC()
defer C.free(unsafe.Pointer(csig))
- cmsg := C.CString(msg)
- defer C.free(unsafe.Pointer(cmsg))
+ var cmsg *C.char
+ if msg == "" {
+ cmsg = nil
+ } else {
+ cmsg = C.CString(msg)
+ defer C.free(unsafe.Pointer(cmsg))
+ }
runtime.LockOSThread()
defer runtime.UnlockOSThread()
@@ -102,7 +117,7 @@ func (v *Reference) Rename(name string, force bool, sig *Signature, msg string)
ret := C.git_reference_rename(&ptr, v.ptr, cname, cbool(force), csig, cmsg)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
return newReferenceFromC(ptr), nil
@@ -128,7 +143,7 @@ func (v *Reference) Delete() error {
ret := C.git_reference_delete(v.ptr)
if ret < 0 {
- return LastError()
+ return MakeGitError(ret)
}
return nil
@@ -184,7 +199,7 @@ func (repo *Repository) NewReferenceIterator() (*ReferenceIterator, error) {
ret := C.git_reference_iterator_new(&ptr, repo.ptr)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
iter := &ReferenceIterator{repo: repo, ptr: ptr}
@@ -205,7 +220,7 @@ func (repo *Repository) NewReferenceIteratorGlob(glob string) (*ReferenceIterato
ret := C.git_reference_iterator_glob_new(&ptr, repo.ptr, cstr)
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
iter := &ReferenceIterator{repo: repo, ptr: ptr}
@@ -226,7 +241,7 @@ func (v *ReferenceIterator) NextName() (string, error) {
return "", ErrIterOver
}
if ret < 0 {
- return "", LastError()
+ return "", MakeGitError(ret)
}
return C.GoString(ptr), nil
@@ -258,7 +273,7 @@ func (v *ReferenceIterator) Next() (*Reference, error) {
return nil, ErrIterOver
}
if ret < 0 {
- return nil, LastError()
+ return nil, MakeGitError(ret)
}
return newReferenceFromC(ptr), nil