[RFC PATCH 1/4] ls-tree: don't use "show_tree_data" for "fast" callbacks
- From
Teng Long <dyroneteng@gmail.com>
- Date
- Dec 21, 2022, 11:47 UTC
- Message-ID
- <20221221114737.51375-1-tenglong.tl@alibaba-inc.com>
- In-Reply-To
- <RFC-patch-1.4-2d8bcfe2cab-20221117T134528Z-avarab@gmail.com>
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com> writes:
Show 19 quoted lines
> As noted in [1] the code that made it in as part of > 9c4d58ff2c3 (ls-tree: split up "fast path" callbacks, 2022-03-23) was > a "maybe a good idea, maybe not" RFC-quality patch. I hadn't looked > very carefully at the resulting patterns. > > The implementation shared the "struct show_tree_data data", which was > introduced in e81517155e0 (ls-tree: introduce struct "show_tree_data", > 2022-03-23) both for use in 455923e0a15 (ls-tree: introduce "--format" > option, 2022-03-23), and because the "fat" callback hadn't been split > up as 9c4d58ff2c3 did. > > Now that that's been done we can see that most of what > show_tree_common() was doing could be done lazily by the callbacks > themselves, who in the pre-image were often using an odd mis-match of > their own arguments and those same arguments stuck into the "data" > structure. Let's also have the callers initialize the "type", rather > than grabbing it from the "data" structure afterwards. > > 1. https://lore.kernel.org/git/cover-0.7-00000000000-20220310T134811Z-avarab@gmail.com/
Because in "show_tree_common(&data, &recurse, oid, base, pathname, mode)", the "data" and the other args exist redundant, we could just not to pass "data", because it's enough, do I understand right?
Thanks.