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

Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW()

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Feb 28, 2014, 14:20 UTC
Message-ID
<53109B19.8070103@alum.mit.edu>
In-Reply-To
<CACsJy8AmQeVb-i6Sn0BH-_ikEXPHTdtKnQRyzChX1WfD9Lj4Jw@mail.gmail.com>
On 02/28/2014 01:40 PM, Duy Nguyen wrote:
Show 7 quoted lines
> On Fri, Feb 28, 2014 at 7:32 PM, Duy Nguyen <pclouds@gmail.com> wrote:
>>>         done_pbase_paths_num++;
>>
>> If you move this up one line, then you don't have to "+ 1" in ALLOC_GROW
>>
> 
> same comment to a few other patches. The rest of your series looks good.
Duy,

The example in Documentation/technical/api-allocation-growing.txt does it the same way as Dmitry:

    ALLOC_GROW(item, nr + 1, alloc);
    item[nr++] = value you like;
The alternative,
    nr++;
    ALLOC_GROW(item, nr, alloc);
    item[nr] = value you like;

is an extra line, which is at least a small argument for the variant shown in the docs. (Since ALLOC_GROW is a macro, it is not OK to use "++nr" as its second argument.) Personally, I also prefer the shorter version. The line

    item[nr++] = value
is an easy-to-recognize idiom, and
    ALLOC_GROW(item, nr + 1, alloc);
somehow makes it more transparent by how much more space will be needed.

So my vote is that the patches are OK the way Dmitry wrote them (mind, I have only read through 05/11 so far).

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Duy NguyenNext: Duy Nguyen
Message 8 of 42 in “Use ALLOC_GROW() instead of inline code”
  1. Use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Feb 27, 2014
  2. Michael HaggertyFeb 27, 2014
  3. Junio C HamanoFeb 27, 2014
  4. 00/11 Use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Feb 28, 2014
  5. 01/11 builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  6. Duy NguyenFeb 28, 2014
  7. Duy NguyenFeb 28, 2014
  8. Michael HaggertyFeb 28, 2014
  9. Duy NguyenFeb 28, 2014
  10. Junio C HamanoFeb 28, 2014
  11. Jeff KingMar 1, 2014
  12. Junio C HamanoMar 3, 2014
  13. 02/11 bundle.c: change add_to_ref_list() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  14. 03/11 cache-tree.c: change find_subtree() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  15. 04/11 commit.c: change register_commit_graft() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  16. 05/11 diff.c: use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Feb 28, 2014
  17. 06/11 diffcore-rename.c: use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Feb 28, 2014
  18. 07/11 patch-ids.c: change add_commit() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  19. 08/11 replace_object.c: change register_replace_object() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  20. 09/11 reflog-walk.c: use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Feb 28, 2014
  21. Duy NguyenFeb 28, 2014
  22. Junio C HamanoFeb 28, 2014
  23. 10/11 dir.c: change create_simplify() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  24. 11/11 attr.c: change handle_attr_line() to use ALLOC_GROW()Dmitry S. Dolzhenko, Feb 28, 2014
  25. Michael HaggertyFeb 28, 2014
  26. Dmitry S. DolzhenkoMar 1, 2014
  27. Junio C HamanoMar 3, 2014
  28. 00/11 Use ALLOC_GROW() instead of inline codeDmitry S. Dolzhenko, Mar 3, 2014
  29. 01/11 builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()Dmitry S. Dolzhenko, Mar 3, 2014
  30. 02/11 bundle.c: use ALLOC_GROW() in add_to_ref_list()Dmitry S. Dolzhenko, Mar 3, 2014
  31. 03/11 cache-tree.c: use ALLOC_GROW() in find_subtree()Dmitry S. Dolzhenko, Mar 3, 2014
  32. 04/11 commit.c: use ALLOC_GROW() in register_commit_graft()Dmitry S. Dolzhenko, Mar 3, 2014
  33. 05/11 diff.c: use ALLOC_GROW()Dmitry S. Dolzhenko, Mar 3, 2014
  34. 06/11 diffcore-rename.c: use ALLOC_GROW()Dmitry S. Dolzhenko, Mar 3, 2014
  35. 07/11 patch-ids.c: use ALLOC_GROW() in add_commit()Dmitry S. Dolzhenko, Mar 3, 2014
  36. 08/11 replace_object.c: use ALLOC_GROW() in register_replace_object()Dmitry S. Dolzhenko, Mar 3, 2014
  37. 09/11 reflog-walk.c: use ALLOC_GROW()Dmitry S. Dolzhenko, Mar 3, 2014
  38. 10/11 dir.c: use ALLOC_GROW() in create_simplify()Dmitry S. Dolzhenko, Mar 3, 2014
  39. 11/11 attr.c: use ALLOC_GROW() in handle_attr_line()Dmitry S. Dolzhenko, Mar 3, 2014
  40. Eric SunshineMar 3, 2014
  41. Junio C HamanoMar 3, 2014
  42. He SunMar 3, 2014

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.