Re: [PATCH 31/41] wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Apr 24, 2018, 10:03 UTC
- Message-ID
- <CAN0heSpoe7SgNZnYDHXS7ByMmh3TH+exaS40btK7pq21MZ3cEA@mail.gmail.com>
- In-Reply-To
- <20180423233951.276447-32-sandals@crustytoothpaste.net>
On 24 April 2018 at 01:39, brian m. carlson <sandals@crustytoothpaste.net> wrote:
Show 42 quoted lines
> Convert two uses of EMPTY_TREE_SHA1_HEX to use oid_to_hex_r and
> the_hash_algo to avoid a dependency on a given hash algorithm. Use
> oid_to_hex_r in preference to oid_to_hex because the buffer needs to
> last through several function calls which might exhaust the limit of
> four static buffers.
>
> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
> wt-status.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/wt-status.c b/wt-status.c
> index 50815e5faf..857724bd60 100644
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -600,10 +600,11 @@ static void wt_status_collect_changes_index(struct wt_status *s)
> {
> struct rev_info rev;
> struct setup_revision_opt opt;
> + char hex[GIT_MAX_HEXSZ + 1];
>
> init_revisions(&rev, NULL);
> memset(&opt, 0, sizeof(opt));
> - opt.def = s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference;
> + opt.def = s->is_initial ? oid_to_hex_r(hex, the_hash_algo->empty_tree) : s->reference;
> setup_revisions(0, NULL, &rev, &opt);
>
> rev.diffopt.flags.override_submodule_config = 1;
> @@ -975,13 +976,14 @@ static void wt_longstatus_print_verbose(struct wt_status *s)
> struct setup_revision_opt opt;
> int dirty_submodules;
> const char *c = color(WT_STATUS_HEADER, s);
> + char hex[GIT_MAX_HEXSZ + 1];
>
> init_revisions(&rev, NULL);
> rev.diffopt.flags.allow_textconv = 1;
> rev.diffopt.ita_invisible_in_index = 1;
>
> memset(&opt, 0, sizeof(opt));
> - opt.def = s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference;
> + opt.def = s->is_initial ? oid_to_hex_r(hex, the_hash_algo->empty_tree) : s->reference;
> setup_revisions(0, NULL, &rev, &opt);Just a thought: Maybe it would make sense to have a function `oid_hex_empty_tree()` or similar to replace the oid_to_hex[_r](the_hash_algo->empty_tree) idiom. It would help avoid the buffer here, but also get rid of a few instances of code peeking into the_hash_algo. I dunno.
I've been scanning this series semi-sloppily up to here, and left some comments along the way.
Thank you for working on this.
Martin