strbuf doc: reuse after strbuf_release is fine
authorJonathan Nieder <jrnieder@gmail.com>
Wed, 4 Oct 2017 02:39:54 +0000 (19:39 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Oct 2017 06:21:52 +0000 (15:21 +0900)
commite0222159fa53ea24785cfb1dc5de0214e89b0117
tree532cfcd58b57d1d7ec9f877ebbd483afd9919091
parent4010f1d1b782eb7585e0e0abcefa794bd5ff29a0
strbuf doc: reuse after strbuf_release is fine

strbuf_release leaves the strbuf in a valid, initialized state, so
there is no need to call strbuf_init after it.

Moreover, this is not likely to change in the future: strbuf_release
leaving the strbuf in a valid state has been easy to maintain and has
been very helpful for Git's robustness and simplicity (e.g.,
preventing use-after-free vulnerabilities).

Document the semantics so the next generation of Git developers can
become familiar with them without reading the implementation.  It is
still not advisable to call strbuf_release too often because it is
wasteful, so add a note pointing to strbuf_reset for that.

The same semantics apply to strbuf_detach.  Add a similar note to its
docstring to make that clear.

Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
strbuf.h