From: Justin Tobler Date: Tue, 23 Apr 2024 00:32:28 GMT Subject: Re: [PATCH 03/11] attr: don't recompute default attribute source Message-ID: <2id3biajad2mw7xvq7bfaturhfot66y24cs5l5zxpc3q4jf4i3@duhrmrpdq3gv> In-Reply-To: On 24/04/19 11:51AM, Patrick Steinhardt wrote: > The `default_attr_source()` function lazily computes the attr source > supposedly once, only. This is done via a static variable `attr_source` > that contains the resolved object ID of the attr source's tree. If the > variable is the null object ID then we try to look up the attr source, > otherwise we skip over it. > > This has approach is flawed though: the variable will never be set to Remove "has" -Justin > anything else but the null object ID in case there is no attr source. > Consequently, we re-compute the information on every call. And in the > worst case, when we silently ignore bad trees, this will cause us to try > and look up the treeish every single time. > > Improve this by introducing a separate variable `has_attr_source` to > track whether we already computed the attr source and, if so, whether we > have an attr source or not. > > This also allows us to convert the `ignore_bad_attr_tree` to not be > static anymore as the code will only be executed once anyway. > > Signed-off-by: Patrick Steinhardt ...