summaryrefslogtreecommitdiff
path: root/commit.go
diff options
context:
space:
mode:
Diffstat (limited to 'commit.go')
-rw-r--r--commit.go37
1 files changed, 4 insertions, 33 deletions
diff --git a/commit.go b/commit.go
index 3a07fa8..cfc6a63 100644
--- a/commit.go
+++ b/commit.go
@@ -75,40 +75,11 @@ func (c *Commit) WithSignatureUsing(f CommitSigningCallback) (*Oid, error) {
// WithSignature creates a new signed commit from the given signature and signature field
func (c *Commit) WithSignature(signature string, signatureField string) (*Oid, error) {
- totalCommit := c.ContentToSign()
-
- oid := new(Oid)
-
- var csf *C.char = nil
- if signatureField != "" {
- csf = C.CString(signatureField)
- defer C.free(unsafe.Pointer(csf))
- }
-
- runtime.LockOSThread()
- defer runtime.UnlockOSThread()
-
- cTotalCommit := C.CString(totalCommit)
- cSignature := C.CString(signature)
- defer C.free(unsafe.Pointer(cTotalCommit))
- defer C.free(unsafe.Pointer(cSignature))
-
- ret := C.git_commit_create_with_signature(
- oid.toC(),
- c.Owner().ptr,
- cTotalCommit,
- cSignature,
- csf,
+ return c.Owner().CreateCommitWithSignature(
+ c.ContentToSign(),
+ signature,
+ signatureField,
)
-
- runtime.KeepAlive(c)
- runtime.KeepAlive(oid)
-
- if ret < 0 {
- return nil, MakeGitError(ret)
- }
-
- return oid, nil
}
func (c *Commit) ExtractSignature() (string, string, error) {