epee: allow copying a rolling_median_t object

This commit is contained in:
moneromooo-monero 2021-07-29 12:00:18 +00:00
parent f49fc9b487
commit 9f786f0550
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
2 changed files with 32 additions and 1 deletions

View file

@ -126,7 +126,6 @@ private:
protected:
rolling_median_t &operator=(const rolling_median_t&) = delete;
rolling_median_t(const rolling_median_t&) = delete;
public:
//creates new rolling_median_t: to calculate `nItems` running median.
@ -139,6 +138,20 @@ public:
clear();
}
rolling_median_t(const rolling_median_t &other)
{
N = other.N;
int size = N * (sizeof(Item) + sizeof(int) * 2);
data = (Item*)malloc(size);
memcpy(data, other.data, size);
pos = (int*) (data + N);
heap = pos + N + (N / 2); //points to middle of storage.
idx = other.idx;
minCt = other.minCt;
maxCt = other.maxCt;
sz = other.sz;
}
rolling_median_t(rolling_median_t &&m)
{
memcpy(this, &m, sizeof(rolling_median_t));