Re: [PATCH v2 03/10] reftable/basics: provide new `reftable_buf` interface
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Oct 15, 2024, 19:27 UTC
- Message-ID
- <Zw7CIRoXrLr5pd5A@nand.local>
- In-Reply-To
- <CAPig+cSXJaETg4Sq3Zw8=37M15CdLEUkdMb2U2X4NPSOAFwmyw@mail.gmail.com>
On Tue, Oct 15, 2024 at 01:10:59AM -0400, Eric Sunshine wrote:
Show 18 quoted lines
> On Tue, Oct 15, 2024 at 12:38 AM Patrick Steinhardt <ps@pks.im> wrote: > > On Mon, Oct 14, 2024 at 06:34:55PM -0400, Taylor Blau wrote: > > > On Mon, Oct 14, 2024 at 03:02:24PM +0200, Patrick Steinhardt wrote: > > > > +/* > > > > + * Add the given bytes to the buffer. Returns 0 on success, > > > > + * REFTABLE_OUT_OF_MEMORY_ERROR on allocation failure. > > > > + */ > > > > +int reftable_buf_add(struct reftable_buf *buf, const void *data, size_t len); > > > > > > Is there a reason that data is a void-pointer here and not a const char > > > *? > > > > Only that it emulates `strbuf_add()`, which also uses a void pointer. > > The reason for that is because strbuf is a generic byte-array which > may contain embedded NULs, and the `const void *` plus `len` > emphasizes this property, whereas `const char *` would imply a > C-string with no embedded NULs.
Thanks, that was the explanation I was missing. Perhaps it is worth re-stating in the commit message here to avoid confusing readers like I was when I first read Patrick's patch ;-).
Thanks, Taylor