summaryrefslogtreecommitdiff
path: root/diffcore-rename.c
diff options
context:
space:
mode:
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r--diffcore-rename.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c
index 4670a40179..71aa240a68 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -274,7 +274,7 @@ static int find_identical_files(struct hashmap *srcs,
struct diff_options *options)
{
int renames = 0;
-
+ struct hashmap_entry *ent;
struct diff_filespec *target = rename_dst[dst_index].two;
struct file_similarity *p, *best = NULL;
int i = 100, best_score = -1;
@@ -282,12 +282,15 @@ static int find_identical_files(struct hashmap *srcs,
/*
* Find the best source match for specified destination.
*/
- p = hashmap_get_from_hash(srcs,
+ ent = hashmap_get_from_hash(srcs,
hash_filespec(options->repo, target),
NULL);
- for (; p; p = hashmap_get_next(srcs, &p->entry)) {
+ for (; ent; ent = hashmap_get_next(srcs, ent)) {
int score;
- struct diff_filespec *source = p->filespec;
+ struct diff_filespec *source;
+
+ p = container_of(ent, struct file_similarity, entry);
+ source = p->filespec;
/* False hash collision? */
if (!oideq(&source->oid, &target->oid))