#include <cmath>
#include <cstdlib>
#include <cstring>
+#include <cstdint>
#include "logic.hpp"
#include "logicsegment.hpp"
free(l.data);
}
-uint64_t LogicSegment::unpack_sample(const uint8_t *ptr) const
+inline uint64_t LogicSegment::unpack_sample(const uint8_t *ptr) const
{
#ifdef HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS
return *(uint64_t*)ptr;
#endif
}
-void LogicSegment::pack_sample(uint8_t *ptr, uint64_t value)
+inline void LogicSegment::pack_sample(uint8_t *ptr, uint64_t value)
{
#ifdef HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS
*(uint64_t*)ptr = value;
lock_guard<recursive_mutex> lock(mutex_);
- uint64_t prev_sample_count = sample_count_;
- uint64_t sample_count = data_size / unit_size_;
+ const uint64_t prev_sample_count = sample_count_;
+ const uint64_t sample_count = data_size / unit_size_;
append_samples(data, sample_count);
dest_ptr = (uint8_t*)m0.data + prev_length * unit_size_;
// Iterate through the samples to populate the first level mipmap
- uint64_t start_sample = prev_length * MipMapScaleFactor;
- uint64_t end_sample = m0.length * MipMapScaleFactor;
+ const uint64_t start_sample = prev_length * MipMapScaleFactor;
+ const uint64_t end_sample = m0.length * MipMapScaleFactor;
it = begin_raw_sample_iteration(start_sample);
for (uint64_t i = start_sample; i < end_sample;) {
uint8_t data[8];
get_raw_samples(index, 1, data);
- uint64_t sample = unpack_sample(data);
- return sample;
+ return unpack_sample(data);
}
void LogicSegment::get_subsampled_edges(
uint64_t LogicSegment::pow2_ceil(uint64_t x, unsigned int power)
{
- const uint64_t p = 1 << power;
+ const uint64_t p = UINT64_C(1) << power;
return (x + p - 1) / p * p;
}