From: Xinyu Ruan <r200981113@gmail.com>
The debug ref backend (refs_be_debug) was missing the optimize function pointer, which caused a segmentation fault when running 'GIT_TRACE_REFS=1 git pack-refs --all' command.
Signed-off-by: Xinyu Ruan <r200981113@gmail.com>
---
refs: add missing optimize implementation for debug ref backendPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2090%2FRuanXinyu%2Fref-debug-optimize-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2090/RuanXinyu/ref-debug-optimize-v1 Pull-Request: https://github.com/git/git/pull/2090
refs/debug.c | 9 +++++++++ 1 file changed, 9 insertions(+)
Show changes to refs/debug.c +9 −0
diff --git a/refs/debug.c b/refs/debug.c index 697adbd0dc..8dad7046cd 100644 --- a/refs/debug.c +++ b/refs/debug.c @@ -124,6 +124,14 @@ static int debug_pack_refs(struct ref_store *ref_store, struct pack_refs_opts *o return res; } +static int debug_optimize(struct ref_store *ref_store, struct pack_refs_opts *opts) +{ + struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store; + int res = drefs->refs->be->optimize(drefs->refs, opts); + trace_printf_key(&trace_refs, "optimize: %d\n", res); + return res; +} + static int debug_rename_ref(struct ref_store *ref_store, const char *oldref, const char *newref, const char *logmsg) { @@ -444,6 +452,7 @@ struct ref_storage_be refs_be_debug = { .transaction_abort = debug_transaction_abort, .pack_refs = debug_pack_refs, + .optimize = debug_optimize, .rename_ref = debug_rename_ref, .copy_ref = debug_copy_ref, base-commit: a99f379adf116d53eb11957af5bab5214915f91d
-- gitgitgadget