1
0
Fork 0
forked from suyu/suyu

core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead.

This commit is contained in:
unknown 2019-02-07 19:40:39 +01:00
parent 74cee1b65d
commit 6a1a2d4aa5
2 changed files with 7 additions and 10 deletions

View file

@ -458,7 +458,7 @@ add_library(core STATIC
create_target_directory_groups(core)
target_link_libraries(core PUBLIC common PRIVATE audio_core video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static mbedtls opus unicorn open_source_archives)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt mbedtls opus unicorn open_source_archives)
if (ENABLE_WEB_SERVICE)
target_compile_definitions(core PRIVATE -DENABLE_WEB_SERVICE)
target_link_libraries(core PRIVATE web_service)

View file

@ -4,7 +4,8 @@
#include <cinttypes>
#include <vector>
#include <lz4.h>
#include "common/data_compression.h"
#include "common/common_funcs.h"
#include "common/file_util.h"
#include "common/hex_util.h"
@ -35,15 +36,11 @@ static_assert(sizeof(MODHeader) == 0x1c, "MODHeader has incorrect size.");
std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data,
const NSOSegmentHeader& header) {
std::vector<u8> uncompressed_data(header.size);
const int bytes_uncompressed =
LZ4_decompress_safe(reinterpret_cast<const char*>(compressed_data.data()),
reinterpret_cast<char*>(uncompressed_data.data()),
static_cast<int>(compressed_data.size()), header.size);
const std::vector<u8> uncompressed_data =
Compression::DecompressDataLZ4(compressed_data, header.size);
ASSERT_MSG(bytes_uncompressed == static_cast<int>(header.size) &&
bytes_uncompressed == static_cast<int>(uncompressed_data.size()),
"{} != {} != {}", bytes_uncompressed, header.size, uncompressed_data.size());
ASSERT_MSG(uncompressed_data.size() == static_cast<int>(header.size),
"{} != {}", header.size, uncompressed_data.size());
return uncompressed_data;
}