WIA: Store all-zero data efficiently

This commit is contained in:
JosJuice 2020-04-19 13:39:10 +02:00
parent e8b019ac29
commit 40e46aee57

View File

@ -1366,6 +1366,17 @@ WIAFileReader::ConversionResult WIAFileReader::CompressAndWriteGroup(
size_t* groups_written, Compressor* compressor, bool compressed_exception_lists,
const std::vector<u8>& exception_lists, const std::vector<u8>& main_data)
{
const auto all_zero = [](const std::vector<u8>& data) {
return std::all_of(data.begin(), data.end(), [](u8 x) { return x == 0; });
};
if (all_zero(exception_lists) && all_zero(main_data))
{
(*group_entries)[*groups_written] = GroupEntry{0, 0};
++*groups_written;
return ConversionResult::Success;
}
const u64 data_offset = *bytes_written;
if (compressor)