]> sigrok.org Git - pulseview.git/blobdiff - datasnapshot.cpp
Partial fix to scroll overflow issues
[pulseview.git] / datasnapshot.cpp
index 80d9ba4318f53f83e8d89604d658870d677e4b69..df411f3d0abad62561bed96332907ce4c5f76348 100644 (file)
@@ -26,7 +26,7 @@
 
 DataSnapshot::DataSnapshot(int unit_size) :
        _data(NULL),
-       _data_length(0),
+       _sample_count(0),
        _unit_size(unit_size)
 {
        assert(_unit_size > 0);
@@ -39,12 +39,13 @@ DataSnapshot::~DataSnapshot()
 
 uint64_t DataSnapshot::get_sample_count()
 {
-       return _data_length / _unit_size;
+       return _sample_count;
 }
 
-void DataSnapshot::append_data(void *data, uint64_t length)
+void DataSnapshot::append_data(void *data, uint64_t samples)
 {
-       _data = realloc(_data, _data_length + length);
-       memcpy((uint8_t*)_data + _data_length, data, length);
-       _data_length += length;
+       _data = realloc(_data, (_sample_count + samples) * _unit_size);
+       memcpy((uint8_t*)_data + _sample_count * _unit_size,
+               data, samples * _unit_size);
+       _sample_count += samples;
 }