summaryrefslogtreecommitdiff
path: root/stash.go
diff options
context:
space:
mode:
Diffstat (limited to 'stash.go')
-rw-r--r--stash.go30
1 files changed, 14 insertions, 16 deletions
diff --git a/stash.go b/stash.go
index 620e70f..2086e2e 100644
--- a/stash.go
+++ b/stash.go
@@ -161,34 +161,32 @@ func DefaultStashApplyOptions() (StashApplyOptions, error) {
}, nil
}
-func (opts *StashApplyOptions) toC(errorTarget *error) *C.git_stash_apply_options {
+func populateStashApplyOptions(copts *C.git_stash_apply_options, opts *StashApplyOptions, errorTarget *error) *C.git_stash_apply_options {
+ C.git_stash_apply_options_init(copts, C.GIT_STASH_APPLY_OPTIONS_VERSION)
if opts == nil {
return nil
}
- optsC := &C.git_stash_apply_options{
- version: C.GIT_STASH_APPLY_OPTIONS_VERSION,
- flags: C.uint32_t(opts.Flags),
- }
- populateCheckoutOptions(&optsC.checkout_options, &opts.CheckoutOptions, errorTarget)
+ copts.flags = C.uint32_t(opts.Flags)
+ populateCheckoutOptions(&copts.checkout_options, &opts.CheckoutOptions, errorTarget)
if opts.ProgressCallback != nil {
progressData := &stashApplyProgressCallbackData{
callback: opts.ProgressCallback,
errorTarget: errorTarget,
}
- C._go_git_populate_stash_apply_callbacks(optsC)
- optsC.progress_payload = pointerHandles.Track(progressData)
+ C._go_git_populate_stash_apply_callbacks(copts)
+ copts.progress_payload = pointerHandles.Track(progressData)
}
- return optsC
+ return copts
}
-func freeStashApplyOptions(optsC *C.git_stash_apply_options) {
- if optsC == nil {
+func freeStashApplyOptions(copts *C.git_stash_apply_options) {
+ if copts == nil {
return
}
- if optsC.progress_payload != nil {
- pointerHandles.Untrack(optsC.progress_payload)
+ if copts.progress_payload != nil {
+ pointerHandles.Untrack(copts.progress_payload)
}
- freeCheckoutOptions(&optsC.checkout_options)
+ freeCheckoutOptions(&copts.checkout_options)
}
// Apply applies a single stashed state from the stash list.
@@ -217,7 +215,7 @@ func freeStashApplyOptions(optsC *C.git_stash_apply_options) {
// Error codes can be interogated with IsErrorCode(err, ErrorCodeNotFound).
func (c *StashCollection) Apply(index int, opts StashApplyOptions) error {
var err error
- optsC := opts.toC(&err)
+ optsC := populateStashApplyOptions(&C.git_stash_apply_options{}, &opts, &err)
defer freeStashApplyOptions(optsC)
runtime.LockOSThread()
@@ -320,7 +318,7 @@ func (c *StashCollection) Drop(index int) error {
// state for the given index.
func (c *StashCollection) Pop(index int, opts StashApplyOptions) error {
var err error
- optsC := opts.toC(&err)
+ optsC := populateStashApplyOptions(&C.git_stash_apply_options{}, &opts, &err)
defer freeStashApplyOptions(optsC)
runtime.LockOSThread()