]> sigrok.org Git - pulseview.git/blobdiff - pv/data/logicsnapshot.cpp
Preallocate memory before samples are received.
[pulseview.git] / pv / data / logicsnapshot.cpp
index f203e8b674fb57fb37c556edc593c5e1798873a8..754a456cc8f2e6c078cfd5a46e8b1c756571f79a 100644 (file)
@@ -43,10 +43,13 @@ const int LogicSnapshot::MipMapScaleFactor = 1 << MipMapScalePower;
 const float LogicSnapshot::LogMipMapScaleFactor = logf(MipMapScaleFactor);
 const uint64_t LogicSnapshot::MipMapDataUnit = 64*1024;        // bytes
 
-LogicSnapshot::LogicSnapshot(const sr_datafeed_logic &logic) :
+LogicSnapshot::LogicSnapshot(const sr_datafeed_logic &logic,
+                             const uint64_t expected_num_samples) :
        Snapshot(logic.unitsize),
        _last_append_sample(0)
 {
+       set_capacity(expected_num_samples);
+
        lock_guard<recursive_mutex> lock(_mutex);
        memset(_mip_map, 0, sizeof(_mip_map));
        append_payload(logic);