Make *Util
components constructible
#121
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously (603949f) we made some changes to
TrimUtil
to return astd::shared_ptr<void>
containing the internal variables used in the algorithm. This allowed us to defer destruction inTrimUtil
so that we can skip it withstd::_Exit
later on - saving 1-2%.The change did not sit well with me and is not very idiomatic. This commit changes both
BuildDirUtil
andTrimUtil
to be constructible and have their static methods changed to non-const
member variables. We store the variables in astd::unique_ptr
to defer destruction of the state until the destructor of the*Util
- which is skipped when we callstd::_Exit
.