Skip to content

Commit e7b3e10

Browse files
committed
Refactor TreeChanges.PrintCallBack()
1 parent 04e0440 commit e7b3e10

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

LibGit2Sharp/TreeChanges.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,40 +48,39 @@ internal TreeChanges(DiffListSafeHandle diff)
4848
private int PrintCallBack(IntPtr data, GitDiffDelta delta, GitDiffRange range, GitDiffLineOrigin lineorigin, IntPtr content, uint contentlen)
4949
{
5050
string formattedoutput = Utf8Marshaler.FromNative(content, contentlen);
51-
FilePath currentFilePath = FilePathMarshaler.FromNative(delta.NewFile.Path);
5251

53-
AddLineChange(currentFilePath, lineorigin);
52+
TreeEntryChanges currentChange = AddFileChange(delta, lineorigin);
53+
AddLineChange(currentChange, lineorigin);
5454

55-
if (lineorigin == GitDiffLineOrigin.GIT_DIFF_LINE_FILE_HDR)
56-
{
57-
AddFileChange(delta);
58-
}
59-
60-
changes[currentFilePath].AppendToPatch(formattedoutput);
55+
currentChange.AppendToPatch(formattedoutput);
6156
fullPatchBuilder.Append(formattedoutput);
6257

6358
return 0;
6459
}
6560

66-
private void AddLineChange(FilePath currentFilePath, GitDiffLineOrigin lineOrigin)
61+
private void AddLineChange(Changes currentChange, GitDiffLineOrigin lineOrigin)
6762
{
6863
switch (lineOrigin)
6964
{
7065
case GitDiffLineOrigin.GIT_DIFF_LINE_ADDITION:
7166
linesAdded++;
72-
this[currentFilePath].LinesAdded++;
67+
currentChange.LinesAdded++;
7368
break;
7469

7570
case GitDiffLineOrigin.GIT_DIFF_LINE_DELETION:
7671
linesDeleted++;
77-
this[currentFilePath].LinesDeleted++;
72+
currentChange.LinesDeleted++;
7873
break;
7974
}
8075
}
8176

82-
private void AddFileChange(GitDiffDelta delta)
77+
private TreeEntryChanges AddFileChange(GitDiffDelta delta, GitDiffLineOrigin lineorigin)
8378
{
8479
var newFilePath = FilePathMarshaler.FromNative(delta.NewFile.Path);
80+
81+
if (lineorigin != GitDiffLineOrigin.GIT_DIFF_LINE_FILE_HDR)
82+
return this[newFilePath];
83+
8584
var oldFilePath = FilePathMarshaler.FromNative(delta.OldFile.Path);
8685
var newMode = (Mode)delta.NewFile.Mode;
8786
var oldMode = (Mode)delta.OldFile.Mode;
@@ -92,6 +91,7 @@ private void AddFileChange(GitDiffDelta delta)
9291

9392
fileDispatcher[delta.Status](this, diffFile);
9493
changes.Add(newFilePath, diffFile);
94+
return diffFile;
9595
}
9696

9797
#region IEnumerable<Tag> Members

0 commit comments

Comments
 (0)