Thread (1 message) 1 message, 1 author, 2020-02-19

Re: [GSoC][RFC][PATCH 2/2] STRBUF_INIT_CONST: Adapting strbuf_* functions

From: Junio C Hamano <hidden>
Date: 2020-02-19 10:44:59

Robear Selwans [off-list ref] writes:
On Wed, Feb 19, 2020 at 5:13 AM Junio C Hamano [off-list ref] wrote:
quoted
Yes, but the case that matters to _your_ use is sb->alloc == 0.  You
do not want to let a broken strbuf (presumably broken by changes
other than your own) to pass, when you can detect it.  And for that,
paying attention to sb->len _might_ make sense, but then the check
won't be

        if (sb->alloc < sb->len)
                make it mutable;

you'd rather be writing something like

        if (!sb->alloc)
                make it mutable;
        else if (sb->alloc < sb->len)
                BUG("somebody fed a corrupt strbuf to me");
Ooh so what you meant, is that corrupt `strbuf`s need to be
anticipated even if they
don't make much sense. Smart.
I don't know if that is smart, but the point is that sb->alloc is
the only thing you need to care about if you want to see if the
strbuf is borrowing from a const string, and it does not make much
sense not to catch a corruption, _if_ you are to check the value of
sb->len as well.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help