@@ -27,23 +27,25 @@ protected PatchStats()
2727
2828 internal unsafe PatchStats ( DiffHandle diff )
2929 {
30- int count = Proxy . git_diff_num_deltas ( diff ) ;
31- for ( int i = 0 ; i < count ; i ++ )
30+ using ( diff )
3231 {
33- using ( var patch = Proxy . git_patch_from_diff ( diff , i ) )
32+ int count = Proxy . git_diff_num_deltas ( diff ) ;
33+ for ( int i = 0 ; i < count ; i ++ )
3434 {
35- var delta = Proxy . git_diff_get_delta ( diff , i ) ;
36- var pathPtr = delta ->new_file . Path != null ? delta ->new_file . Path : delta ->old_file . Path ;
37- var newFilePath = LaxFilePathMarshaler . FromNative ( pathPtr ) ;
35+ using ( var patch = Proxy . git_patch_from_diff ( diff , i ) )
36+ {
37+ var delta = Proxy . git_diff_get_delta ( diff , i ) ;
38+ var pathPtr = delta ->new_file . Path != null ? delta ->new_file . Path : delta ->old_file . Path ;
39+ var newFilePath = LaxFilePathMarshaler . FromNative ( pathPtr ) ;
3840
39- var stats = Proxy . git_patch_line_stats ( patch ) ;
40- int added = stats . Item1 ;
41- int deleted = stats . Item2 ;
42- changes . Add ( newFilePath , new ContentChangeStats ( added , deleted ) ) ;
43- totalLinesAdded += added ;
44- totalLinesDeleted += deleted ;
41+ var stats = Proxy . git_patch_line_stats ( patch ) ;
42+ int added = stats . Item1 ;
43+ int deleted = stats . Item2 ;
44+ changes . Add ( newFilePath , new ContentChangeStats ( added , deleted ) ) ;
45+ totalLinesAdded += added ;
46+ totalLinesDeleted += deleted ;
47+ }
4548 }
46-
4749 }
4850 }
4951
@@ -117,5 +119,24 @@ private string DebuggerDisplay
117119 TotalLinesDeleted ) ;
118120 }
119121 }
122+
123+ /// <summary>
124+ /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
125+ /// </summary>
126+ public void Dispose ( )
127+ {
128+ Dispose ( true ) ;
129+ GC . SuppressFinalize ( this ) ;
130+ }
131+
132+ /// <summary>
133+ /// Releases unmanaged and - optionally - managed resources.
134+ /// </summary>
135+ /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
136+ protected virtual void Dispose ( bool disposing )
137+ {
138+ // This doesn't do anything yet because it loads everything
139+ // eagerly and disposes of the diff handle in the constructor.
140+ }
120141 }
121142}
0 commit comments