X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Flogicsegment.cpp;h=4b32f38d89992a6500293d0d462489a77a9e3243;hb=e32025579dc2ac0bbb78f87ef241c4b4c5f8fc9c;hp=62f188e383d4dff662874dce86d975f0ecbdf3a9;hpb=4cc0df94c1027add1e62dfdf81e48eda959783c9;p=pulseview.git diff --git a/pv/data/logicsegment.cpp b/pv/data/logicsegment.cpp index 62f188e3..4b32f38d 100644 --- a/pv/data/logicsegment.cpp +++ b/pv/data/logicsegment.cpp @@ -46,9 +46,9 @@ const int LogicSegment::MipMapScaleFactor = 1 << MipMapScalePower; const float LogicSegment::LogMipMapScaleFactor = logf(MipMapScaleFactor); const uint64_t LogicSegment::MipMapDataUnit = 64 * 1024; // bytes -LogicSegment::LogicSegment(pv::data::Logic& owner, unsigned int unit_size, - uint64_t samplerate) : - Segment(samplerate, unit_size), +LogicSegment::LogicSegment(pv::data::Logic& owner, uint32_t segment_id, + unsigned int unit_size, uint64_t samplerate) : + Segment(segment_id, samplerate, unit_size), owner_(owner), last_append_sample_(0) { @@ -296,10 +296,11 @@ uint64_t LogicSegment::get_unpacked_sample(uint64_t index) const { assert(index < sample_count_); - uint8_t* data = new uint8_t[unit_size_]; + assert(unit_size_ <= 8); // 8 * 8 = 64 channels + uint8_t data[8]; + get_raw_samples(index, 1, data); uint64_t sample = unpack_sample(data); - delete[] data; return sample; }