X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fsnapshot.cpp;h=c02475b7e0ca4efc8f4a2bbca228d3040e7573fd;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hp=2f3f041346b3a96709b21d529c7f5cd2747b7b48;hpb=3b68d03ddae96edb38a80f31bf6a990bde21cd1d;p=pulseview.git diff --git a/pv/data/snapshot.cpp b/pv/data/snapshot.cpp index 2f3f0413..c02475b7 100644 --- a/pv/data/snapshot.cpp +++ b/pv/data/snapshot.cpp @@ -30,8 +30,7 @@ using std::recursive_mutex; namespace pv { namespace data { -Snapshot::Snapshot(int unit_size) : - _data(NULL), +Snapshot::Snapshot(unsigned int unit_size) : _sample_count(0), _capacity(0), _unit_size(unit_size) @@ -43,7 +42,6 @@ Snapshot::Snapshot(int unit_size) : Snapshot::~Snapshot() { lock_guard lock(_mutex); - free(_data); } uint64_t Snapshot::get_sample_count() const @@ -52,7 +50,7 @@ uint64_t Snapshot::get_sample_count() const return _sample_count; } -int Snapshot::unit_size() const +unsigned int Snapshot::unit_size() const { return _unit_size; } @@ -64,14 +62,14 @@ void Snapshot::set_capacity(const uint64_t new_capacity) assert(_capacity >= _sample_count); if (new_capacity > _capacity) { _capacity = new_capacity; - _data = realloc(_data, (new_capacity * _unit_size) + sizeof(uint64_t)); + _data.resize((new_capacity * _unit_size) + sizeof(uint64_t)); } } uint64_t Snapshot::capacity() const { lock_guard lock(_mutex); - return _capacity; + return _data.size(); } void Snapshot::append_data(void *data, uint64_t samples) @@ -86,7 +84,7 @@ void Snapshot::append_data(void *data, uint64_t samples) set_capacity(_sample_count + samples); } - memcpy((uint8_t*)_data + _sample_count * _unit_size, + memcpy((uint8_t*)_data.data() + _sample_count * _unit_size, data, samples * _unit_size); _sample_count += samples; }