git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/6] apply: refactor code to drop `line_allocated`

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 16, 2024, 18:56 UTC
Message-ID
<xmqqldzrmnqn.fsf@gitster.g>
In-Reply-To
<0427cb72507bba7ed62d13a5523fea351a0cb35f.1726470385.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
> Refactor the function to use memmove(3P) instead, which allows us to get
> rid of this double bookkeeping. We call this function at most once per
> image anyway, so this shouldn't cause any performance regressions.

Don't we call remove_first_line() as long as leading is larger than trailing repeatedly? Is "at most once" accurate?

As to the correctness, I think nobody takes the address of an element in the line[] array and expects the address to stay valid across a call to remove_first_line(), so this should be safe.

Thanks.
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
>  apply.c | 33 ++++++++++++++-------------------
>  1 file changed, 14 insertions(+), 19 deletions(-)
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 6 of 20 in “apply: fix leaking buffer of `struct image`”
  1. 0/6 apply: fix leaking buffer of `struct image`Patrick Steinhardt, Sep 16, 2024
  2. 1/6 apply: reorder functions to move image-related things togetherPatrick Steinhardt, Sep 16, 2024
  3. 2/6 apply: rename functions operating on `struct image`Patrick Steinhardt, Sep 16, 2024
  4. 3/6 apply: introduce macro and function to init imagesPatrick Steinhardt, Sep 16, 2024
  5. 4/6 apply: refactor code to drop `line_allocated`Patrick Steinhardt, Sep 16, 2024
  6. Junio C HamanoSep 16, 2024
  7. Patrick SteinhardtSep 17, 2024
  8. Junio C HamanoSep 16, 2024
  9. 5/6 apply: rename members that track line count and allocation lengthPatrick Steinhardt, Sep 16, 2024
  10. 6/6 apply: refactor `struct image` to use a `struct strbuf`Patrick Steinhardt, Sep 16, 2024
  11. Junio C HamanoSep 16, 2024
  12. 0/6 apply: fix leaking buffer of `struct image`Patrick Steinhardt, Sep 17, 2024
  13. 1/6 apply: reorder functions to move image-related things togetherPatrick Steinhardt, Sep 17, 2024
  14. 2/6 apply: rename functions operating on `struct image`Patrick Steinhardt, Sep 17, 2024
  15. 3/6 apply: introduce macro and function to init imagesPatrick Steinhardt, Sep 17, 2024
  16. 4/6 apply: refactor code to drop `line_allocated`Patrick Steinhardt, Sep 17, 2024
  17. 5/6 apply: rename members that track line count and allocation lengthPatrick Steinhardt, Sep 17, 2024
  18. 6/6 apply: refactor `struct image` to use a `struct strbuf`Patrick Steinhardt, Sep 17, 2024
  19. Patrick SteinhardtSep 17, 2024
  20. Junio C HamanoSep 17, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.