pack-check: stop depending on the_repository
There are multiple sites in "pack-check.c" where we use the global `the_repository` variable, either explicitly or implicitly by using `the_hash_algo`. In all of those cases we already have a repository available in the calling context though. Refactor the code to instead use the caller-provided repository and remove the `USE_THE_REPOSITORY_VARIABLE` define. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
7835ee75cd
commit
7ebf19ce55
11
pack-check.c
11
pack-check.c
@@ -1,4 +1,3 @@
|
|||||||
#define USE_THE_REPOSITORY_VARIABLE
|
|
||||||
#define DISABLE_SIGN_COMPARE_WARNINGS
|
#define DISABLE_SIGN_COMPARE_WARNINGS
|
||||||
|
|
||||||
#include "git-compat-util.h"
|
#include "git-compat-util.h"
|
||||||
@@ -44,7 +43,7 @@ int check_pack_crc(struct packed_git *p, struct pack_window **w_curs,
|
|||||||
} while (len);
|
} while (len);
|
||||||
|
|
||||||
index_crc = p->index_data;
|
index_crc = p->index_data;
|
||||||
index_crc += 2 + 256 + (size_t)p->num_objects * (the_hash_algo->rawsz/4) + nr;
|
index_crc += 2 + 256 + (size_t)p->num_objects * (p->repo->hash_algo->rawsz/4) + nr;
|
||||||
|
|
||||||
return data_crc != ntohl(*index_crc);
|
return data_crc != ntohl(*index_crc);
|
||||||
}
|
}
|
||||||
@@ -81,11 +80,11 @@ static int verify_packfile(struct repository *r,
|
|||||||
} while (offset < pack_sig_ofs);
|
} while (offset < pack_sig_ofs);
|
||||||
git_hash_final(hash, &ctx);
|
git_hash_final(hash, &ctx);
|
||||||
pack_sig = use_pack(p, w_curs, pack_sig_ofs, NULL);
|
pack_sig = use_pack(p, w_curs, pack_sig_ofs, NULL);
|
||||||
if (!hasheq(hash, pack_sig, the_repository->hash_algo))
|
if (!hasheq(hash, pack_sig, r->hash_algo))
|
||||||
err = error("%s pack checksum mismatch",
|
err = error("%s pack checksum mismatch",
|
||||||
p->pack_name);
|
p->pack_name);
|
||||||
if (!hasheq(index_base + index_size - r->hash_algo->hexsz, pack_sig,
|
if (!hasheq(index_base + index_size - r->hash_algo->hexsz, pack_sig,
|
||||||
the_repository->hash_algo))
|
r->hash_algo))
|
||||||
err = error("%s pack checksum does not match its index",
|
err = error("%s pack checksum does not match its index",
|
||||||
p->pack_name);
|
p->pack_name);
|
||||||
unuse_pack(w_curs);
|
unuse_pack(w_curs);
|
||||||
@@ -132,7 +131,7 @@ static int verify_packfile(struct repository *r,
|
|||||||
unuse_pack(w_curs);
|
unuse_pack(w_curs);
|
||||||
|
|
||||||
if (type == OBJ_BLOB &&
|
if (type == OBJ_BLOB &&
|
||||||
repo_settings_get_big_file_threshold(the_repository) <= size) {
|
repo_settings_get_big_file_threshold(r) <= size) {
|
||||||
/*
|
/*
|
||||||
* Let stream_object_signature() check it with
|
* Let stream_object_signature() check it with
|
||||||
* the streaming interface; no point slurping
|
* the streaming interface; no point slurping
|
||||||
@@ -181,7 +180,7 @@ int verify_pack_index(struct packed_git *p)
|
|||||||
return error("packfile %s index not opened", p->pack_name);
|
return error("packfile %s index not opened", p->pack_name);
|
||||||
|
|
||||||
/* Verify SHA1 sum of the index file */
|
/* Verify SHA1 sum of the index file */
|
||||||
if (!hashfile_checksum_valid(the_repository->hash_algo, p->index_data, p->index_size))
|
if (!hashfile_checksum_valid(p->repo->hash_algo, p->index_data, p->index_size))
|
||||||
err = error("Packfile index for %s hash mismatch",
|
err = error("Packfile index for %s hash mismatch",
|
||||||
p->pack_name);
|
p->pack_name);
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
Reference in New Issue
Block a user