diff options
Diffstat (limited to 'walk.go')
| -rw-r--r-- | walk.go | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -34,6 +34,7 @@ func revWalkFromC(repo *Repository, c *C.git_revwalk) *RevWalk { func (v *RevWalk) Reset() { C.git_revwalk_reset(v.ptr) + runtime.KeepAlive(v) } func (v *RevWalk) Push(id *Oid) error { @@ -41,6 +42,8 @@ func (v *RevWalk) Push(id *Oid) error { defer runtime.UnlockOSThread() ecode := C.git_revwalk_push(v.ptr, id.toC()) + runtime.KeepAlive(v) + runtime.KeepAlive(id) if ecode < 0 { return MakeGitError(ecode) } @@ -55,6 +58,7 @@ func (v *RevWalk) PushGlob(glob string) error { defer C.free(unsafe.Pointer(cstr)) ecode := C.git_revwalk_push_glob(v.ptr, cstr) + runtime.KeepAlive(v) if ecode < 0 { return MakeGitError(ecode) } @@ -69,6 +73,7 @@ func (v *RevWalk) PushRange(r string) error { defer C.free(unsafe.Pointer(cstr)) ecode := C.git_revwalk_push_range(v.ptr, cstr) + runtime.KeepAlive(v) if ecode < 0 { return MakeGitError(ecode) } @@ -83,6 +88,7 @@ func (v *RevWalk) PushRef(r string) error { defer C.free(unsafe.Pointer(cstr)) ecode := C.git_revwalk_push_ref(v.ptr, cstr) + runtime.KeepAlive(v) if ecode < 0 { return MakeGitError(ecode) } @@ -94,6 +100,7 @@ func (v *RevWalk) PushHead() (err error) { defer runtime.UnlockOSThread() ecode := C.git_revwalk_push_head(v.ptr) + runtime.KeepAlive(v) if ecode < 0 { err = MakeGitError(ecode) } @@ -105,6 +112,8 @@ func (v *RevWalk) Hide(id *Oid) error { defer runtime.UnlockOSThread() ecode := C.git_revwalk_hide(v.ptr, id.toC()) + runtime.KeepAlive(v) + runtime.KeepAlive(id) if ecode < 0 { return MakeGitError(ecode) } @@ -119,6 +128,7 @@ func (v *RevWalk) HideGlob(glob string) error { defer C.free(unsafe.Pointer(cstr)) ecode := C.git_revwalk_hide_glob(v.ptr, cstr) + runtime.KeepAlive(v) if ecode < 0 { return MakeGitError(ecode) } @@ -133,6 +143,7 @@ func (v *RevWalk) HideRef(r string) error { defer C.free(unsafe.Pointer(cstr)) ecode := C.git_revwalk_hide_ref(v.ptr, cstr) + runtime.KeepAlive(v) if ecode < 0 { return MakeGitError(ecode) } @@ -144,6 +155,7 @@ func (v *RevWalk) HideHead() (err error) { defer runtime.UnlockOSThread() ecode := C.git_revwalk_hide_head(v.ptr) + runtime.KeepAlive(v) if ecode < 0 { err = MakeGitError(ecode) } @@ -155,6 +167,7 @@ func (v *RevWalk) Next(id *Oid) (err error) { defer runtime.UnlockOSThread() ret := C.git_revwalk_next(id.toC(), v.ptr) + runtime.KeepAlive(v) switch { case ret < 0: err = MakeGitError(ret) @@ -192,14 +205,15 @@ func (v *RevWalk) Iterate(fun RevWalkIterator) (err error) { func (v *RevWalk) SimplifyFirstParent() { C.git_revwalk_simplify_first_parent(v.ptr) + runtime.KeepAlive(v) } func (v *RevWalk) Sorting(sm SortType) { C.git_revwalk_sorting(v.ptr, C.uint(sm)) + runtime.KeepAlive(v) } func (v *RevWalk) Free() { - runtime.SetFinalizer(v, nil) C.git_revwalk_free(v.ptr) } |
