From d0b334b24409ddc190a7010be0072d87df6b6bfe Mon Sep 17 00:00:00 2001 From: Jesse Ezell Date: Thu, 20 Mar 2014 21:56:41 -0700 Subject: cleanup and refactor diff / patch --- patch.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'patch.go') diff --git a/patch.go b/patch.go index 561786e..f2016c4 100644 --- a/patch.go +++ b/patch.go @@ -12,7 +12,7 @@ type Patch struct { ptr *C.git_patch } -func newPatch(ptr *C.git_patch) *Patch { +func newPatchFromC(ptr *C.git_patch) *Patch { if ptr == nil { return nil } @@ -25,13 +25,20 @@ func newPatch(ptr *C.git_patch) *Patch { return patch } -func (patch *Patch) Free() { +func (patch *Patch) Free() error { + if patch.ptr == nil { + return ErrInvalid + } runtime.SetFinalizer(patch, nil) C.git_patch_free(patch.ptr) + return nil } -func (patch *Patch) String() string { +func (patch *Patch) String() (string, error) { + if diff.ptr != nil { + return "", ErrInvalid + } var cptr *C.char C.git_patch_to_str(&cptr, patch.ptr) - return C.GoString(cptr) + return C.GoString(cptr), nil } -- cgit v1.2.3