yuzu-emu
/
yuzu
Archived
1
0
Fork 0

Merge pull request #6145 from lat9nq/nvhost_empty_memcpy

nvhost_nvdec_common: Avoid memcpy with null pointers
This commit is contained in:
bunnei 2021-04-08 13:23:05 -07:00 committed by GitHub
commit dfac2e2d25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 6 deletions

View File

@ -23,17 +23,22 @@ namespace {
template <typename T> template <typename T>
std::size_t SpliceVectors(const std::vector<u8>& input, std::vector<T>& dst, std::size_t count, std::size_t SpliceVectors(const std::vector<u8>& input, std::vector<T>& dst, std::size_t count,
std::size_t offset) { std::size_t offset) {
std::memcpy(dst.data(), input.data() + offset, count * sizeof(T)); if (!dst.empty()) {
offset += count * sizeof(T); std::memcpy(dst.data(), input.data() + offset, count * sizeof(T));
return offset; }
return 0;
} }
// Write vectors will write data to the output buffer // Write vectors will write data to the output buffer
template <typename T> template <typename T>
std::size_t WriteVectors(std::vector<u8>& dst, const std::vector<T>& src, std::size_t offset) { std::size_t WriteVectors(std::vector<u8>& dst, const std::vector<T>& src, std::size_t offset) {
std::memcpy(dst.data() + offset, src.data(), src.size() * sizeof(T)); if (src.empty()) {
offset += src.size() * sizeof(T); return 0;
return offset; } else {
std::memcpy(dst.data() + offset, src.data(), src.size() * sizeof(T));
offset += src.size() * sizeof(T);
return offset;
}
} }
} // Anonymous namespace } // Anonymous namespace