1
0
Fork 0
forked from suyu/suyu

fsp_srv: Remove unnecessary vector construction in IFile's Write() function

We can avoid constructing a std::vector here by simply passing a pointer
to the original data and the size of the copy we wish to perform to the
backend's Write() function instead, avoiding copying the data where it's
otherwise not needed.
This commit is contained in:
Lioncash 2018-07-19 11:01:05 -04:00
parent 3e9b79e088
commit 6c1ba02e0c

View file

@ -149,8 +149,9 @@ private:
length, data.size()); length, data.size());
// Write the data to the Storage backend // Write the data to the Storage backend
std::vector<u8> actual_data(data.begin(), data.begin() + length); const auto write_size =
const std::size_t written = backend->WriteBytes(std::move(actual_data), offset); static_cast<std::size_t>(std::distance(data.begin(), data.begin() + length));
const std::size_t written = backend->Write(data.data(), write_size, offset);
ASSERT_MSG(static_cast<s64>(written) == length, ASSERT_MSG(static_cast<s64>(written) == length,
"Could not write all bytes to file (requested={:016X}, actual={:016X}).", length, "Could not write all bytes to file (requested={:016X}, actual={:016X}).", length,