8000 Refactor git_branch_iterator · apfunk/libgit2sharp@94066ec · GitHub
[go: up one dir, main page]

Skip to content

Commit 94066ec

Browse files
committed
Refactor git_branch_iterator
1 parent 6b6a44a commit 94066ec

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

LibGit2Sharp/Core/NativeMethods.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ internal static extern int git_branch_move(
182182
[DllImport(libgit2)]
183183
internal static extern int git_branch_next(
184184
out ReferenceSafeHandle ref_out,
185-
out IntPtr type_out,
185+
out GitBranchType type_out,
186186
BranchIteratorSafeHandle iter);
187187

188188
[DllImport(libgit2)]

LibGit2Sharp/Core/Proxy.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,32 +147,28 @@ public static IEnumerable<Branch> git_branch_iterator(Repository repo, GitBranch
147147
{
148148
BranchIteratorSafeHandle iter_out = null;
149149

150-
var branches = new List<Branch>();
151-
152150
try
153151
{
154152
Ensure.ZeroResult(NativeMethods.git_branch_iterator_new(out iter_out, repo.Handle, branchType));
155153

156-
int res = 0;
157-
158-
while (res == (int)GitErrorCode.Ok)
154+
while(true)
159155
{
160156
ReferenceSafeHandle ref_out = null;
161157
try
162158
{
163-
IntPtr type_out;
164-
res = NativeMethods.git_branch_next(out ref_out, out type_out, iter_out);
159+
GitBranchType type_out;
160+
var res = NativeMethods.git_branch_next(out ref_out, out type_out, iter_out);
165161

166162
if (res == (int) GitErrorCode.IterOver)
167163
{
168-
break;
164+
yield break;
169165
}
170166

171167
Ensure.ZeroResult(res);
172168

173169
var reference = Reference.BuildFromPtr<Reference>(ref_out, repo);
174170

175-
branches.Add(new Branch(repo, reference, reference.CanonicalName));
171+
yield return new Branch(repo, reference, reference.CanonicalName);
176172
}
177173
finally
178174
{
@@ -184,8 +180,6 @@ public static IEnumerable<Branch> git_branch_iterator(Repository repo, GitBranch
184180
{
185181
iter_out.SafeDispose();
186182
}
187-
188-
return branches;
189183
}
190184
}
191185

0 commit comments

Comments
 (0)
0