make filesystem-accessing FileOps
functions take const string &
#6531
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.
Motivation
Most of these functions take
string_view
, but we need to pass null-terminated strings to the underlying OS functions and therefore need to allocate astring
. But in the common case, the caller already had astring
, so we wind up allocating astring
inside these functions for no good reason. This is probably not a big deal, but less work is less work, and we avoid weird cases like repeatedly allocating strings in e.g.FileOps::writeIfDifferent
.In cases where the caller had a
string_view
(which is not that many), I think allocating the string at the callsite is a good thing, or at least not a bad one. (Actually, for a lot of these,core::File::path()
should be returning aconst string &
, and that would fix some awkwardness in places. Next PR!)Test plan
See included automated tests.