summaryrefslogtreecommitdiff
path: root/patch.go
diff options
context:
space:
mode:
Diffstat (limited to 'patch.go')
-rw-r--r--patch.go15
1 files changed, 11 insertions, 4 deletions
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
}