All of lore.kernel.org
 help / color / mirror / Atom feed
From: Derrick Stolee <derrickstolee@github.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>, git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Victoria Dye <vdye@github.com>,
	Jeff Hostetler <jeffhost@microsoft.com>
Subject: Re: [PATCH v2 0/6] cache API: always have a "istate->repo"
Date: Thu, 12 Jan 2023 10:23:54 -0500	[thread overview]
Message-ID: <26708e4a-93bf-5dec-2b3e-da8f4ce37571@github.com> (raw)
In-Reply-To: <cover-v2-0.6-00000000000-20230112T124842Z-avarab@gmail.com>

On 1/12/2023 7:55 AM, Ævar Arnfjörð Bjarmason wrote:

>  * Derrick suggested in
>    https://lore.kernel.org/git/6b92fad2-6b74-fddb-679c-8c8735e7103d@github.com/
>    that things might be nicer if we had an explicit initializer, which
>    was also the subject of the previous discussion at
>    https://lore.kernel.org/git/xmqqmt6vqo2w.fsf@gitster.g/; but
>    concluded that it was probably best to leave it for now.
> 
>    I tried it out, and I think it's worth just doing that now, which
>    is why there's a new 5/6 here: We start by adding an
>    INDEX_STATE_INIT macro, and corresponding function.
> 
>    There's a bit of churn in 6/6 as all of those now will take a
>    "repo" argument, but I think the end result is worth it, because
>    even if "repo" remains the only thing that we need to initialize
>    we're now able to use ALLOC_ARRAY() instead of CALLOC_ARRAY().
> 
>    We'll thus be helped by analysis tools (which would show access to
>    un-init'd memory) if we miss properly init-ing not just the "repo"
>    field, but anything in the structure, so our test coverage will be
>    better.
> 
>    It also makes the code easier to follow and change, as it's now
>    more obvious where we initialize this, and it'll be easier to
>    change it in the future if e.g. we add a new member that has
>    mandatory initialization (e.g. a "struct strbuf").

I wasn't expecting the initializer idea to work as well as it has.
Now, Patch 5 does all the heavy lifting and Patch 6 is an easy read.

Outside of one question about the istate->initialized member (which
might not need any change) I'm happy with this version.

Thanks,
-Stolee

  parent reply	other threads:[~2023-01-12 15:32 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-10  6:17 [PATCH 0/5] cache API: always have a "istate->repo" Ævar Arnfjörð Bjarmason
2023-01-10  6:17 ` [PATCH 1/5] builtin/difftool.c: { 0 }-initialize rather than using memset() Ævar Arnfjörð Bjarmason
2023-01-10  6:17 ` [PATCH 2/5] sparse-index.c: expand_to_path() can assume non-NULL "istate" Ævar Arnfjörð Bjarmason
2023-01-10  6:17 ` [PATCH 3/5] sparse-index API: fix TODO, BUG() out on NULL ensure_full_index() Ævar Arnfjörð Bjarmason
2023-01-10 10:35   ` Philip Oakley
2023-01-10 12:22     ` Ævar Arnfjörð Bjarmason
2023-01-10 14:58   ` Derrick Stolee
2023-01-10  6:17 ` [PATCH 4/5] read-cache.c: refactor set_new_index_sparsity() for subsequent commit Ævar Arnfjörð Bjarmason
2023-01-10  6:17 ` [PATCH 5/5] treewide: always have a valid "index_state.repo" member Ævar Arnfjörð Bjarmason
2023-01-10 12:24   ` Ævar Arnfjörð Bjarmason
2023-01-10 13:13   ` Jeff Hostetler
2023-01-10 15:08   ` Derrick Stolee
2023-01-10 15:09 ` [PATCH 0/5] cache API: always have a "istate->repo" Derrick Stolee
2023-01-12 12:55 ` [PATCH v2 0/6] " Ævar Arnfjörð Bjarmason
2023-01-12 12:55   ` [PATCH v2 1/6] builtin/difftool.c: { 0 }-initialize rather than using memset() Ævar Arnfjörð Bjarmason
2023-01-12 12:55   ` [PATCH v2 2/6] sparse-index.c: expand_to_path() can assume non-NULL "istate" Ævar Arnfjörð Bjarmason
2023-01-12 12:55   ` [PATCH v2 3/6] sparse-index API: BUG() out on NULL ensure_full_index() Ævar Arnfjörð Bjarmason
2023-01-12 12:55   ` [PATCH v2 4/6] read-cache.c: refactor set_new_index_sparsity() for subsequent commit Ævar Arnfjörð Bjarmason
2023-01-12 12:55   ` [PATCH v2 5/6] cache API: add a "INDEX_STATE_INIT" macro/function, add release_index() Ævar Arnfjörð Bjarmason
2023-01-12 15:21     ` Derrick Stolee
2023-01-12 16:19       ` Ævar Arnfjörð Bjarmason
2023-01-12 16:47         ` Derrick Stolee
2023-01-12 12:55   ` [PATCH v2 6/6] treewide: always have a valid "index_state.repo" member Ævar Arnfjörð Bjarmason
2023-01-12 15:22     ` Derrick Stolee
2023-01-12 15:23   ` Derrick Stolee [this message]
2023-01-13 18:29     ` [PATCH v2 0/6] cache API: always have a "istate->repo" Junio C Hamano
2023-01-13 19:22   ` Junio C Hamano
2023-01-16 13:38     ` Ævar Arnfjörð Bjarmason
2023-01-16 16:53       ` Philip Oakley
2023-01-16 18:39         ` Junio C Hamano
2023-01-17 13:57           ` [PATCH] treewide: always have a valid "index_state.repo" member Ævar Arnfjörð Bjarmason
2023-01-17 15:34             ` Derrick Stolee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=26708e4a-93bf-5dec-2b3e-da8f4ce37571@github.com \
    --to=derrickstolee@github.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jeffhost@microsoft.com \
    --cc=vdye@github.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.