diff options
| author | 2018-07-19 11:01:05 -0400 | |
|---|---|---|
| committer | 2018-07-19 11:01:07 -0400 | |
| commit | 6c1ba02e0cacfd66cf36d40a4b0f9794bc2ca26e (patch) | |
| tree | 63998475a888bfdfb0a0c1f1aabcc903fd8b6f95 | |
| parent | fsp_srv: Remove unnecessary std::vector construction in IDirectory's Read() f... (diff) | |
| download | yuzu-6c1ba02e0cacfd66cf36d40a4b0f9794bc2ca26e.tar.gz yuzu-6c1ba02e0cacfd66cf36d40a4b0f9794bc2ca26e.tar.xz yuzu-6c1ba02e0cacfd66cf36d40a4b0f9794bc2ca26e.zip | |
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.
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 673eaabf0..e7ffb6bd1 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp | |||
| @@ -149,8 +149,9 @@ private: | |||
| 149 | length, data.size()); | 149 | length, data.size()); |
| 150 | 150 | ||
| 151 | // Write the data to the Storage backend | 151 | // Write the data to the Storage backend |
| 152 | std::vector<u8> actual_data(data.begin(), data.begin() + length); | 152 | const auto write_size = |
| 153 | const std::size_t written = backend->WriteBytes(std::move(actual_data), offset); | 153 | static_cast<std::size_t>(std::distance(data.begin(), data.begin() + length)); |
| 154 | const std::size_t written = backend->Write(data.data(), write_size, offset); | ||
| 154 | 155 | ||
| 155 | ASSERT_MSG(static_cast<s64>(written) == length, | 156 | ASSERT_MSG(static_cast<s64>(written) == length, |
| 156 | "Could not write all bytes to file (requested={:016X}, actual={:016X}).", length, | 157 | "Could not write all bytes to file (requested={:016X}, actual={:016X}).", length, |