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

Re: [PATCH 1/9] string-list: add string_list_{pop, last} functions

From
Ramsay Jones <ramsay@ramsayjones.plus.com>
Date
Sep 12, 2018, 02:24 UTC
Message-ID
<d6668ef0-2a9c-d591-fa4c-b8777576f334@ramsayjones.plus.com>
In-Reply-To
<20180911234951.14129-2-sbeller@google.com>
On 12/09/18 00:49, Stefan Beller wrote:
Show 22 quoted lines
> Add a few functions to allow a string-list to be used as a stack:
> 
>  - string_list_last() lets a caller peek the string_list_item at the
>    end of the string list.  The caller needs to be aware that it is
>    borrowing a pointer, which can become invalid if/when the
>    string_list is resized.
> 
>  - string_list_pop() removes the string_list_item at the end of
>    the string list.
> 
>  - _pop usually has a friend _push. This role is taken by
>     string_list_append already, as they are not symmetrical
>     in our code base: _append returns the pointer, such that
>     adding a util is easy, but _pop doesn't return such a pointer.
> 
> You can use them in this pattern:
> 
>     while (list.nr) {
>         struct string_list_item *item = string_list_last(&list);
> 
>         work_on(item);
>         string_list_pop(&list);
string_list_pop() takes a second int parameter (free_util).

ATB, Ramsay Jones

Previous: Stefan BellerNext: Junio C Hamano
Message 3 of 33 in “fetch: make sure submodule oids are fetched”
  1. 0/9 fetch: make sure submodule oids are fetchedStefan Beller, Sep 11, 2018
  2. 1/9 string-list: add string_list_{pop, last} functionsStefan Beller, Sep 11, 2018
  3. Ramsay JonesSep 12, 2018
  4. Junio C HamanoSep 12, 2018
  5. 2/9 sha1-array: provide oid_array_filterStefan Beller, Sep 11, 2018
  6. Junio C HamanoSep 12, 2018
  7. 3/9 submodule.c: fix indentationStefan Beller, Sep 11, 2018
  8. Junio C HamanoSep 12, 2018
  9. 4/9 submodule.c: sort changed_submodule_names before searching itStefan Beller, Sep 11, 2018
  10. Junio C HamanoSep 12, 2018
  11. Stefan BellerSep 12, 2018
  12. 5/9 submodule: move global changed_submodule_names into fetch submodule structStefan Beller, Sep 11, 2018
  13. 6/9 submodule.c: do not copy around submodule listStefan Beller, Sep 11, 2018
  14. Ramsay JonesSep 12, 2018
  15. 7/9 submodule: fetch in submodules git directory instead of in worktreeStefan Beller, Sep 11, 2018
  16. Junio C HamanoSep 12, 2018
  17. Stefan BellerSep 13, 2018
  18. 8/9 fetch: retry fetching submodules if sha1 were not fetchedStefan Beller, Sep 11, 2018
  19. Junio C HamanoSep 12, 2018
  20. 9/9 builtin/fetch: check for submodule updates for non branch fetchesStefan Beller, Sep 11, 2018
  21. Junio C HamanoSep 12, 2018
  22. 0/9 fetch: make sure submodule oids are fetchedStefan Beller, Sep 17, 2018
  23. 1/9 string-list: add string_list_{pop, last} functionsStefan Beller, Sep 17, 2018
  24. string-list: add string_list_{pop, last} functionsStefan Beller, Sep 21, 2018
  25. 2/9 sha1-array: provide oid_array_filterStefan Beller, Sep 17, 2018
  26. Stefan BellerSep 17, 2018
  27. 3/9 submodule.c: fix indentationStefan Beller, Sep 17, 2018
  28. 4/9 submodule.c: sort changed_submodule_names before searching itStefan Beller, Sep 17, 2018
  29. 5/9 submodule: move global changed_submodule_names into fetch submodule structStefan Beller, Sep 17, 2018
  30. 6/9 submodule.c: do not copy around submodule listStefan Beller, Sep 17, 2018
  31. 7/9 submodule: fetch in submodules git directory instead of in worktreeStefan Beller, Sep 17, 2018
  32. 8/9 fetch: retry fetching submodules if needed objects were not fetchedStefan Beller, Sep 17, 2018
  33. 9/9 builtin/fetch: check for submodule updates for non branch fetchesStefan Beller, Sep 17, 2018

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.