From 28b486b2e2376f11cb86f6116763421c2fed7218 Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Mon, 5 Mar 2012 09:14:56 -0800 Subject: [PATCH] Copy values to avoid strict aliasing warning To make this code more resilient to future changes, we'll explicitly translate the libgit2 structure to the libxdiff structure. --- src/diff_output.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/diff_output.c b/src/diff_output.c index aea79ba6c..684de0cc4 100644 --- a/src/diff_output.c +++ b/src/diff_output.c @@ -308,6 +308,7 @@ int git_diff_foreach( git_vector_foreach(&diff->deltas, info.index, delta) { git_blob *old_blob = NULL, *new_blob = NULL; git_map old_data, new_data; + mmfile_t old_xdiff_data, new_xdiff_data; if (delta->status == GIT_DELTA_UNMODIFIED) continue; @@ -409,8 +410,12 @@ int git_diff_foreach( assert(hunk_cb || line_cb); info.delta = delta; + old_xdiff_data.ptr = old_data.data; + old_xdiff_data.size = old_data.len; + new_xdiff_data.ptr = new_data.data; + new_xdiff_data.size = new_data.len; - xdl_diff((mmfile_t *)&old_data, (mmfile_t *)&new_data, + xdl_diff(&old_xdiff_data, &new_xdiff_data, &xdiff_params, &xdiff_config, &xdiff_callback); cleanup: