summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2021-05-24 05:32:32 -0400
committerGravatar Lioncash2021-05-24 15:01:04 -0400
commit49bfd0c46145b8f69e52077b83278038d514caf4 (patch)
treebc7a1a88592b486641571be8997ce9357275b4c2 /src
parentlz4_compression: Make use of std::span (diff)
downloadyuzu-49bfd0c46145b8f69e52077b83278038d514caf4.tar.gz
yuzu-49bfd0c46145b8f69e52077b83278038d514caf4.tar.xz
yuzu-49bfd0c46145b8f69e52077b83278038d514caf4.zip
zstd_compression: Make use of std::span
Allows for the incoming data stream to be non-allocating.
Diffstat (limited to 'src')
-rw-r--r--src/common/zstd_compression.cpp2
-rw-r--r--src/common/zstd_compression.h5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/common/zstd_compression.cpp b/src/common/zstd_compression.cpp
index 5f45459da..695b96a43 100644
--- a/src/common/zstd_compression.cpp
+++ b/src/common/zstd_compression.cpp
@@ -32,7 +32,7 @@ std::vector<u8> CompressDataZSTDDefault(const u8* source, std::size_t source_siz
32 return CompressDataZSTD(source, source_size, ZSTD_CLEVEL_DEFAULT); 32 return CompressDataZSTD(source, source_size, ZSTD_CLEVEL_DEFAULT);
33} 33}
34 34
35std::vector<u8> DecompressDataZSTD(const std::vector<u8>& compressed) { 35std::vector<u8> DecompressDataZSTD(std::span<const u8> compressed) {
36 const std::size_t decompressed_size = 36 const std::size_t decompressed_size =
37 ZSTD_getDecompressedSize(compressed.data(), compressed.size()); 37 ZSTD_getDecompressedSize(compressed.data(), compressed.size());
38 std::vector<u8> decompressed(decompressed_size); 38 std::vector<u8> decompressed(decompressed_size);
diff --git a/src/common/zstd_compression.h b/src/common/zstd_compression.h
index c26a30ab9..bbce14f4e 100644
--- a/src/common/zstd_compression.h
+++ b/src/common/zstd_compression.h
@@ -4,6 +4,7 @@
4 4
5#pragma once 5#pragma once
6 6
7#include <span>
7#include <vector> 8#include <vector>
8 9
9#include "common/common_types.h" 10#include "common/common_types.h"
@@ -40,6 +41,6 @@ namespace Common::Compression {
40 * 41 *
41 * @return the decompressed data. 42 * @return the decompressed data.
42 */ 43 */
43[[nodiscard]] std::vector<u8> DecompressDataZSTD(const std::vector<u8>& compressed); 44[[nodiscard]] std::vector<u8> DecompressDataZSTD(std::span<const u8> compressed);
44 45
45} // namespace Common::Compression \ No newline at end of file 46} // namespace Common::Compression