In "fsck.c::fsck_refs_error_function", we need to tell whether "oid" and
"referent" is NULL. So, we need to always initialize these parameters to
NULL instead of letting them point to anywhere when creating a new
"fsck_ref_report" structure.
In order to conveniently create a new "fsck_ref_report", add a new macro
"FSCK_REF_REPORT_DEFAULT".
Mentored-by: Patrick Steinhardt [off-list ref]
Mentored-by: Karthik Nayak [off-list ref]
Signed-off-by: shejialuo <redacted>
---
fsck.h | 6 ++++++
refs/files-backend.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/fsck.h b/fsck.h
index 500b4c04d2..8894394d16 100644
--- a/fsck.h
+++ b/fsck.h
@@ -152,6 +152,12 @@ struct fsck_ref_report {
const char *referent;
};
+#define FSCK_REF_REPORT_DEFAULT { \
+ .path = NULL, \
+ .oid = NULL, \
+ .referent = NULL, \
+}
+
struct fsck_options {
fsck_walk_func walk;
fsck_error error_func;diff --git a/refs/files-backend.c b/refs/files-backend.c
index 8d6ec9458d..725a4f52e3 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -3446,7 +3446,7 @@ static int files_fsck_refs_name(struct ref_store *ref_store UNUSED,
goto cleanup;
if (check_refname_format(iter->basename, REFNAME_ALLOW_ONELEVEL)) {
- struct fsck_ref_report report = { .path = NULL };
+ struct fsck_ref_report report = FSCK_REF_REPORT_DEFAULT;
strbuf_addf(&sb, "%s/%s", refs_check_dir, iter->relative_path);
report.path = sb.buf;--
2.46.0