epee: allow copying a rolling_median_t object

This commit is contained in:
moneromooo-monero
2022-04-10 18:13:31 +00:00
parent f49fc9b487
commit 9f786f0550
2 changed files with 32 additions and 1 deletions
+14 -1
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));