Thread (20 messages) flat view 20 messages, 3 authors, 2016-11-02

Re: [PATCH 2/4] trailer: avoid unnecessary splitting on lines

From: Christian Couder <hidden>
Date: 2016-10-29 12:25:26

On Sat, Oct 29, 2016 at 2:05 AM, Jonathan Tan [off-list ref] wrote:
trailer.c currently splits lines while processing a buffer (and also
rejoins lines when needing to invoke ignore_non_trailer).

Avoid such line splitting, except when generating the strings
corresponding to trailers (for ease of use by clients - a subsequent
patch will allow other components to obtain the layout of a trailer
block in a buffer, including the trailers themselves). The main purpose
of this is to make it easy to return pointers into the original buffer
(for a subsequent patch), but this also significantly reduces the number
of memory allocations required.

Signed-off-by: Jonathan Tan <redacted>
---
 trailer.c | 215 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 116 insertions(+), 99 deletions(-)
IMHO it is telling that this needs 17 more lines.
quoted hunk ↗ jump to hunk
@@ -954,7 +971,7 @@ void process_trailers(const char *file, int in_place, int trim_empty, struct str
 {
        LIST_HEAD(head);
        LIST_HEAD(arg_head);
-       struct strbuf **lines;
+       struct strbuf sb = STRBUF_INIT;
We often use "sb" as the name of strbuf variables, but I think at
least here (and maybe in other places above) we could use something a
bit more telling, like "input_buf" perhaps.
        int trailer_end;
        FILE *outfile = stdout;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help