diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/lz4_compression.cpp | 3 | ||||
| -rw-r--r-- | src/common/lz4_compression.h | 5 | ||||
| -rw-r--r-- | src/common/tree.h | 11 | ||||
| -rw-r--r-- | src/common/zstd_compression.cpp | 2 | ||||
| -rw-r--r-- | src/common/zstd_compression.h | 5 |
5 files changed, 19 insertions, 7 deletions
diff --git a/src/common/lz4_compression.cpp b/src/common/lz4_compression.cpp index 25700015a..dbb40da7c 100644 --- a/src/common/lz4_compression.cpp +++ b/src/common/lz4_compression.cpp | |||
| @@ -59,8 +59,7 @@ std::vector<u8> CompressDataLZ4HCMax(const u8* source, std::size_t source_size) | |||
| 59 | return CompressDataLZ4HC(source, source_size, LZ4HC_CLEVEL_MAX); | 59 | return CompressDataLZ4HC(source, source_size, LZ4HC_CLEVEL_MAX); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | std::vector<u8> DecompressDataLZ4(const std::vector<u8>& compressed, | 62 | std::vector<u8> DecompressDataLZ4(std::span<const u8> compressed, std::size_t uncompressed_size) { |
| 63 | std::size_t uncompressed_size) { | ||
| 64 | std::vector<u8> uncompressed(uncompressed_size); | 63 | std::vector<u8> uncompressed(uncompressed_size); |
| 65 | const int size_check = LZ4_decompress_safe(reinterpret_cast<const char*>(compressed.data()), | 64 | const int size_check = LZ4_decompress_safe(reinterpret_cast<const char*>(compressed.data()), |
| 66 | reinterpret_cast<char*>(uncompressed.data()), | 65 | reinterpret_cast<char*>(uncompressed.data()), |
diff --git a/src/common/lz4_compression.h b/src/common/lz4_compression.h index 87a4be1b0..1b4717595 100644 --- a/src/common/lz4_compression.h +++ b/src/common/lz4_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" |
| @@ -53,7 +54,7 @@ namespace Common::Compression { | |||
| 53 | * | 54 | * |
| 54 | * @return the decompressed data. | 55 | * @return the decompressed data. |
| 55 | */ | 56 | */ |
| 56 | [[nodiscard]] std::vector<u8> DecompressDataLZ4(const std::vector<u8>& compressed, | 57 | [[nodiscard]] std::vector<u8> DecompressDataLZ4(std::span<const u8> compressed, |
| 57 | std::size_t uncompressed_size); | 58 | std::size_t uncompressed_size); |
| 58 | 59 | ||
| 59 | } // namespace Common::Compression \ No newline at end of file | 60 | } // namespace Common::Compression |
diff --git a/src/common/tree.h b/src/common/tree.h index 9d2d0df4e..18faa4a48 100644 --- a/src/common/tree.h +++ b/src/common/tree.h | |||
| @@ -43,6 +43,8 @@ | |||
| 43 | * The maximum height of a red-black tree is 2lg (n+1). | 43 | * The maximum height of a red-black tree is 2lg (n+1). |
| 44 | */ | 44 | */ |
| 45 | 45 | ||
| 46 | #include "common/assert.h" | ||
| 47 | |||
| 46 | namespace Common { | 48 | namespace Common { |
| 47 | template <typename T> | 49 | template <typename T> |
| 48 | class RBHead { | 50 | class RBHead { |
| @@ -325,6 +327,10 @@ void RB_REMOVE_COLOR(RBHead<Node>* head, Node* parent, Node* elm) { | |||
| 325 | while ((elm == nullptr || RB_IS_BLACK(elm)) && elm != head->Root() && parent != nullptr) { | 327 | while ((elm == nullptr || RB_IS_BLACK(elm)) && elm != head->Root() && parent != nullptr) { |
| 326 | if (RB_LEFT(parent) == elm) { | 328 | if (RB_LEFT(parent) == elm) { |
| 327 | tmp = RB_RIGHT(parent); | 329 | tmp = RB_RIGHT(parent); |
| 330 | if (!tmp) { | ||
| 331 | ASSERT_MSG(false, "tmp is invalid!"); | ||
| 332 | break; | ||
| 333 | } | ||
| 328 | if (RB_IS_RED(tmp)) { | 334 | if (RB_IS_RED(tmp)) { |
| 329 | RB_SET_BLACKRED(tmp, parent); | 335 | RB_SET_BLACKRED(tmp, parent); |
| 330 | RB_ROTATE_LEFT(head, parent, tmp); | 336 | RB_ROTATE_LEFT(head, parent, tmp); |
| @@ -366,6 +372,11 @@ void RB_REMOVE_COLOR(RBHead<Node>* head, Node* parent, Node* elm) { | |||
| 366 | tmp = RB_LEFT(parent); | 372 | tmp = RB_LEFT(parent); |
| 367 | } | 373 | } |
| 368 | 374 | ||
| 375 | if (!tmp) { | ||
| 376 | ASSERT_MSG(false, "tmp is invalid!"); | ||
| 377 | break; | ||
| 378 | } | ||
| 379 | |||
| 369 | if ((RB_LEFT(tmp) == nullptr || RB_IS_BLACK(RB_LEFT(tmp))) && | 380 | if ((RB_LEFT(tmp) == nullptr || RB_IS_BLACK(RB_LEFT(tmp))) && |
| 370 | (RB_RIGHT(tmp) == nullptr || RB_IS_BLACK(RB_RIGHT(tmp)))) { | 381 | (RB_RIGHT(tmp) == nullptr || RB_IS_BLACK(RB_RIGHT(tmp)))) { |
| 371 | RB_SET_COLOR(tmp, EntryColor::Red); | 382 | RB_SET_COLOR(tmp, EntryColor::Red); |
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 | ||
| 35 | std::vector<u8> DecompressDataZSTD(const std::vector<u8>& compressed) { | 35 | std::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 |