]> git.ipfire.org Git - thirdparty/git.git/blobdiff - patch-ids.c
Merge branch 'js/update-index-ignore-removal-for-skip-worktree'
[thirdparty/git.git] / patch-ids.c
index 176c47d9673b07842a2dfe21dbed4d81ebd62a26..12aa6d494b4ed47d1a486307b6b9d9024ee78734 100644 (file)
@@ -36,14 +36,16 @@ int commit_patch_id(struct commit *commit, struct diff_options *options,
  * any significance; only that it is non-zero matters.
  */
 static int patch_id_neq(const void *cmpfn_data,
-                       const void *entry,
-                       const void *entry_or_key,
+                       const struct hashmap_entry *eptr,
+                       const struct hashmap_entry *entry_or_key,
                        const void *unused_keydata)
 {
        /* NEEDSWORK: const correctness? */
        struct diff_options *opt = (void *)cmpfn_data;
-       struct patch_id *a = (void *)entry;
-       struct patch_id *b = (void *)entry_or_key;
+       struct patch_id *a, *b;
+
+       a = container_of(eptr, struct patch_id, ent);
+       b = container_of(entry_or_key, struct patch_id, ent);
 
        if (is_null_oid(&a->patch_id) &&
            commit_patch_id(a->commit, opt, &a->patch_id, 0, 0))
@@ -69,7 +71,7 @@ int init_patch_ids(struct repository *r, struct patch_ids *ids)
 
 int free_patch_ids(struct patch_ids *ids)
 {
-       hashmap_free(&ids->patches, 1);
+       hashmap_free_entries(&ids->patches, struct patch_id, ent);
        return 0;
 }
 
@@ -99,8 +101,7 @@ struct patch_id *has_commit_patch_id(struct commit *commit,
        if (init_patch_id_entry(&patch, commit, ids))
                return NULL;
 
-       return hashmap_get_entry(&ids->patches, &patch, NULL,
-                                       struct patch_id, ent);
+       return hashmap_get_entry(&ids->patches, &patch, ent, NULL);
 }
 
 struct patch_id *add_commit_patch_id(struct commit *commit,