Re: [PATCH v1 2/2] strbuf_getcwd() needs precompse_strbuf_if_needed()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 9, 2024, 15:24 UTC
- Message-ID
- <xmqqh6f7vwiy.fsf@gitster.g>
- In-Reply-To
- <xmqqa5l1pmf9.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 16 quoted lines
>> diff --git a/strbuf.c b/strbuf.c
>> index 0d929e4e19..cefea6b75f 100644
>> --- a/strbuf.c
>> +++ b/strbuf.c
>> @@ -591,6 +591,7 @@ int strbuf_getcwd(struct strbuf *sb)
>> for (;; guessed_len *= 2) {
>> strbuf_grow(sb, guessed_len);
>> if (getcwd(sb->buf, sb->alloc)) {
>> + precompse_strbuf_if_needed(sb);
>> strbuf_setlen(sb, strlen(sb->buf));
>
> The need for strbuf_setlen() stems from the use of getcwd() that may
> and will place a string that is much shorter than sb->alloc, so they
> logically belong together. It will make more sense to call the
> precompose _after_ arranging the members of strbuf in a consistent
> state with the call to strbuf_setlen().Of course, we need to make sure precompose_string_if_needed() will leave the strbuf in an consistent state. I think the implementation of that helper function in this patch already does so, so
strbuf_grow(sb, guessed_len);
if (getcwd(sb->buf, sb->alloc)) {
strbuf_setlen(sb, strlen(sb->buf));
precompse_strbuf_if_needed(sb);would be what we would want.
Thanks.