summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xdiff/xhistogram.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/xdiff/xhistogram.c b/xdiff/xhistogram.c
index 6e20f75fe8..5098b6c502 100644
--- a/xdiff/xhistogram.c
+++ b/xdiff/xhistogram.c
@@ -243,6 +243,14 @@ static int fall_back_to_classic_diff(xpparam_t const *xpp, xdfenv_t *env,
line1, count1, line2, count2);
}
+static inline void free_index(struct histindex *index)
+{
+ xdl_free(index->records);
+ xdl_free(index->line_map);
+ xdl_free(index->next_ptrs);
+ xdl_cha_free(&index->rcha);
+}
+
static int find_lcs(struct histindex *index, struct region *lcs,
int line1, int count1, int line2, int count2) {
int b_ptr;
@@ -343,10 +351,7 @@ static int histogram_diff(xpparam_t const *xpp, xdfenv_t *env,
}
cleanup:
- xdl_free(index.records);
- xdl_free(index.line_map);
- xdl_free(index.next_ptrs);
- xdl_cha_free(&index.rcha);
+ free_index(&index);
return result;
}