Commit 147d86fc by Edward Thomson

diff: only compute patches when requested

When we're called with no hunk or line callback, we don't need to
do the hunk or line computation.
parent d5712ed2
......@@ -284,11 +284,12 @@ int git_diff_foreach(
if (git_diff_delta__should_skip(&diff->opts, patch.delta))
continue;
if ((error = diff_patch_init_from_diff(&patch, diff, idx)) < 0)
break;
if (!(error = diff_patch_invoke_file_callback(&patch, &xo.output)))
error = diff_patch_generate(&patch, &xo.output);
if ((error = diff_patch_invoke_file_callback(&patch, &xo.output)) == 0) {
if (hunk_cb || data_cb) {
if ((error = diff_patch_init_from_diff(&patch, diff, idx)) == 0)
error = diff_patch_generate(&patch, &xo.output);
}
}
git_patch_free(&patch);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment