X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsegment.cpp;h=ae9788fc676724d06166f8ffd851767f5abe6362;hp=905b79274efeb6ee5ddebd7045348c5da85d9db3;hb=ba5f21864c459a24f71ce3b0045805813c032134;hpb=257211b829052bb5d5fade89f518df47d96923b5 diff --git a/pv/data/segment.cpp b/pv/data/segment.cpp index 905b7927..ae9788fc 100644 --- a/pv/data/segment.cpp +++ b/pv/data/segment.cpp @@ -171,15 +171,16 @@ void Segment::append_samples(void* data, uint64_t samples) sample_count_ += samples; } -uint8_t* Segment::get_raw_samples(uint64_t start, uint64_t count) const +void Segment::get_raw_samples(uint64_t start, uint64_t count, + uint8_t* dest) const { assert(start < sample_count_); assert(start + count <= sample_count_); assert(count > 0); + assert(dest != nullptr); lock_guard lock(mutex_); - uint8_t* dest = new uint8_t[count * unit_size_]; uint8_t* dest_ptr = dest; uint64_t chunk_num = (start * unit_size_) / chunk_size_; @@ -199,8 +200,6 @@ uint8_t* Segment::get_raw_samples(uint64_t start, uint64_t count) const chunk_num++; chunk_offs = 0; } - - return dest; } SegmentRawDataIterator* Segment::begin_raw_sample_iteration(uint64_t start)