X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Flogicsegment.cpp;h=dab6b91dee295194f343115c7f2cdeecec5657e6;hp=aee09bd70b1808df035b3f4cf49099e8caa1ceb5;hb=038a14278afb24e10cd59991c2cafd97264fd3a5;hpb=e3ac35531f1e76a31669e821e14dbeb95a5cba63 diff --git a/pv/data/logicsegment.cpp b/pv/data/logicsegment.cpp index aee09bd7..dab6b91d 100644 --- a/pv/data/logicsegment.cpp +++ b/pv/data/logicsegment.cpp @@ -152,10 +152,9 @@ void LogicSegment::append_payload(shared_ptr logic) append_payload_to_mipmap(); } -void LogicSegment::get_samples(uint8_t *const data, - int64_t start_sample, int64_t end_sample) const +const uint8_t* LogicSegment::get_samples(int64_t start_sample, + int64_t end_sample) const { - assert(data); assert(start_sample >= 0); assert(start_sample <= (int64_t)sample_count_); assert(end_sample >= 0); @@ -164,8 +163,10 @@ void LogicSegment::get_samples(uint8_t *const data, lock_guard lock(mutex_); + uint8_t* data = new uint8_t[end_sample - start_sample]; const size_t size = (end_sample - start_sample) * unit_size_; - memcpy(data, (const uint8_t*)data_.data() + start_sample * unit_size_, size); + memcpy(data, (uint8_t*)data_.data() + start_sample * unit_size_, size); + return data; } void LogicSegment::reallocate_mipmap_level(MipMapLevel &m)