diff --git a/kaminpar-common/graph-compression/varint.h b/kaminpar-common/graph-compression/varint.h index 6fdbdfba..ad52a5f0 100644 --- a/kaminpar-common/graph-compression/varint.h +++ b/kaminpar-common/graph-compression/varint.h @@ -7,6 +7,7 @@ ******************************************************************************/ #pragma once +#include #include #include #include @@ -195,72 +196,74 @@ template [[nodiscard]] Int varint_decode_pext_unrolled(const std: *data += 5; return result; } else if constexpr (sizeof(Int) == 8) { - if ((ptr[0] & 0b10000000) == 0) { - const std::uint64_t result = *ptr & 0b01111111; + const std::uint8_t *data_ptr = *data; + if ((data_ptr[0] & 0b10000000) == 0) { + const std::uint64_t result = *data_ptr & 0b01111111; *data += 1; return result; } - if ((ptr[1] & 0b10000000) == 0) { - const std::uint64_t result = _pext_u32(*reinterpret_cast(ptr), 0x7F7F); + if ((data_ptr[1] & 0b10000000) == 0) { + const std::uint64_t result = + _pext_u32(*reinterpret_cast(data_ptr), 0x7F7F); *data += 2; return result; } - if ((ptr[2] & 0b10000000) == 0) { + if ((data_ptr[2] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u32(*reinterpret_cast(ptr), 0x7F7F7F); + _pext_u32(*reinterpret_cast(data_ptr), 0x7F7F7F); *data += 3; return result; } - if ((ptr[3] & 0b10000000) == 0) { + if ((data_ptr[3] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u32(*reinterpret_cast(ptr), 0x7F7F7F7F); + _pext_u32(*reinterpret_cast(data_ptr), 0x7F7F7F7F); *data += 4; return result; } - if ((ptr[4] & 0b10000000) == 0) { + if ((data_ptr[4] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F); *data += 5; return result; } - if ((ptr[5] & 0b10000000) == 0) { + if ((data_ptr[5] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F7F); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F7F); *data += 6; return result; } - if ((ptr[6] & 0b10000000) == 0) { + if ((data_ptr[6] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F7F7F); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F7F7F); *data += 7; return result; } - if ((ptr[7] & 0b10000000) == 0) { + if ((data_ptr[7] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F7F7F7F); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F7F7F7F); *data += 8; return result; } - if ((ptr[8] & 0b10000000) == 0) { + if ((data_ptr[8] & 0b10000000) == 0) { const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F7F7F7F) | - (static_cast(ptr[8] & 0b01111111) << 56); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F7F7F7F) | + (static_cast(data_ptr[8] & 0b01111111) << 56); *data += 9; return result; } const std::uint64_t result = - _pext_u64(*reinterpret_cast(ptr), 0x7F7F7F7F7F7F7F7F) | - (static_cast(ptr[8] & 0b01111111) << 56) | - (static_cast(ptr[9]) << 63); + _pext_u64(*reinterpret_cast(data_ptr), 0x7F7F7F7F7F7F7F7F) | + (static_cast(data_ptr[8] & 0b01111111) << 56) | + (static_cast(data_ptr[9]) << 63); *data += 10; return result; }