Remove Untrack() from free() function
https://github.com/libgit2/git2go/pull/257#discussion_r53443211
This commit is contained in:
parent
5191254a66
commit
dc4409793d
12
stash.go
12
stash.go
|
@ -182,12 +182,16 @@ func (opts *StashApplyOptions) toC() (
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// should be called after every call to toC() as deferred.
|
||||||
|
func untrackStashApplyOptionsCallback(optsC *C.git_stash_apply_options) {
|
||||||
|
if optsC != nil && optsC.progress_payload != nil {
|
||||||
|
pointerHandles.Untrack(optsC.progress_payload)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func freeStashApplyOptions(optsC *C.git_stash_apply_options) {
|
func freeStashApplyOptions(optsC *C.git_stash_apply_options) {
|
||||||
if optsC != nil {
|
if optsC != nil {
|
||||||
freeCheckoutOpts(&optsC.checkout_options)
|
freeCheckoutOpts(&optsC.checkout_options)
|
||||||
if optsC.progress_payload != nil {
|
|
||||||
pointerHandles.Untrack(optsC.progress_payload)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,6 +221,7 @@ func freeStashApplyOptions(optsC *C.git_stash_apply_options) {
|
||||||
// Error codes can be interogated with IsErrorCode(err, ErrNotFound).
|
// Error codes can be interogated with IsErrorCode(err, ErrNotFound).
|
||||||
func (c *StashCollection) Apply(index int, opts StashApplyOptions) error {
|
func (c *StashCollection) Apply(index int, opts StashApplyOptions) error {
|
||||||
optsC, progressData := opts.toC()
|
optsC, progressData := opts.toC()
|
||||||
|
defer untrackStashApplyOptionsCallback(optsC)
|
||||||
defer freeStashApplyOptions(optsC)
|
defer freeStashApplyOptions(optsC)
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
|
@ -316,6 +321,7 @@ func (c *StashCollection) Drop(index int) error {
|
||||||
// state for the given index.
|
// state for the given index.
|
||||||
func (c *StashCollection) Pop(index int, opts StashApplyOptions) error {
|
func (c *StashCollection) Pop(index int, opts StashApplyOptions) error {
|
||||||
optsC, progressData := opts.toC()
|
optsC, progressData := opts.toC()
|
||||||
|
defer untrackStashApplyOptionsCallback(optsC)
|
||||||
defer freeStashApplyOptions(optsC)
|
defer freeStashApplyOptions(optsC)
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
|
|
Loading…
Reference in New Issue