// NewReferenceIterator creates a new iterator over reference names func (repo *Repository) NewReferenceIterator() (*ReferenceIterator, error) { var ptr *C.git_reference_iterator ret := C.git_reference_iterator_new(&ptr, repo.ptr) if ret < 0 { return nil, LastError() } iter := &ReferenceIterator{repo: repo, ptr: ptr} runtime.SetFinalizer(iter, (*ReferenceIterator).Free) return iter, nil }
// NewReferenceIterator creates a new iterator over reference names func (repo *Repository) NewReferenceIterator() (*ReferenceIterator, error) { var ptr *C.git_reference_iterator runtime.LockOSThread() defer runtime.UnlockOSThread() ret := C.git_reference_iterator_new(&ptr, repo.ptr) if ret < 0 { return nil, MakeGitError(ret) } iter := &ReferenceIterator{repo: repo, ptr: ptr} runtime.SetFinalizer(iter, (*ReferenceIterator).Free) return iter, nil }