Re: [PATCH 0/2] strbuf: improve API
- From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
- Date
- Jun 2, 2016, 12:58 UTC
- Message-ID
- <vpqwpm7n3wx.fsf@anie.imag.fr>
- In-Reply-To
- <5750147C.5060609@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> writes:
> 1. The amount of added code complexity is small and quite > encapsulated.
Actually, STRBUF_OWNS_MEMORY can even be seen as a simplification if done properly: we already have the case where the strbuf does not own the memory with strbuf_slopbuf. I already pointed places in strbuf_grow() which could be simplified after the patch. Re-reading the code it seems at lesat the call to strbuf_grow(sb, 0); in strbuf_detach becomes useless. The same in strbuf_attach() probably is, too.
So, the final strbuf.[ch] code might not be "worse" that the previous.
I'm unsure about the complexity of the future code using the new API. I don't forsee cases where using the new API would lead to a high maintenance cost, but I don't claim I considered all possible uses.
Show 5 quoted lines
> 2. The ability to use strbufs without having to allocate memory might > make enough *psychological* difference that it encourages some > devs to use strbufs where they would otherwise have done manual > memory management. I think this would be a *big* win in terms of > potential bugs and security vulnerabilities avoided.
Note that this can also be seen as a counter-argument, since it may psychologically encourage people to micro-optimize code and use contributors/reviewers neurons to spend time on "shall this be on-stack or malloced?".
I think we already have a tendency to micro-optimize non-critical code too much in Git's codebase, so it's not necessarily a step in the right direction.
In conclusion, I don't have a conclusion, sorry ;-).
-- Matthieu Moy http://www-verimag.imag.fr/~moy/