Re: [PATCH v2 3/4] strbuf_setlen: don't write to strbuf_slopbuf
- From
Brandon Casey <drafnel@gmail.com>
- Date
- Aug 23, 2017, 21:54 UTC
- Message-ID
- <CA+sFfMdMgrGBhECegBe09c38nRM+Zt5JK4gJaZ96DO-9zC-8qA@mail.gmail.com>
- In-Reply-To
- <CA+sFfMe56itAMDXOJybf0yHj+BqU1Ai1aU7inoTG3FJtdtZxyw@mail.gmail.com>
On Wed, Aug 23, 2017 at 2:20 PM, Brandon Casey <drafnel@gmail.com> wrote:
Show 13 quoted lines
> On Wed, Aug 23, 2017 at 2:04 PM, Junio C Hamano <gitster@pobox.com> wrote: >> Brandon Casey <drafnel@gmail.com> writes: >> >>> So is there any reason why didn't do something like the following in >>> the first place? >> >> My guess is that we didn't bother; if we cared, we would have used a >> single instance of const char in a read-only segment, instead of >> such a macro. > > I think you mean something like this: > > const char * const strbuf_slopbuf = "";
Ah, you probably meant something like this:
const char strbuf_slopbuf = '\0';
which gcc will apparently place in the read-only segment. I did not know that.
And assignment and initialization would look like:
sb->buf = (char*) &strbuf_slopbuf;
and
#define STRBUF_INIT { .alloc = 0, .len = 0, .buf = (char*) &strbuf_slopbuf }respectively. Yeah, that's definitely preferable to a macro. Something similar could be done in object.c.
-Brandon