aboutsummaryrefslogtreecommitdiff
path: root/src/random.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2018-10-31 15:41:13 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2018-12-12 14:28:16 -0800
commite414486d56b9f06af7aeb07ce13e3c3780c2b69b (patch)
tree1014bfa4fe74fe860bd34e43fad8ef734c270f50 /src/random.cpp
parent022cf47dd7ef8f46e32a184e84f94d1e9f3a495c (diff)
Do not permit copying FastRandomContexts
Diffstat (limited to 'src/random.cpp')
-rw-r--r--src/random.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/random.cpp b/src/random.cpp
index ebc2ff42c8..f8ffda136d 100644
--- a/src/random.cpp
+++ b/src/random.cpp
@@ -464,6 +464,20 @@ FastRandomContext::FastRandomContext(bool fDeterministic) : requires_seed(!fDete
rng.SetKey(seed.begin(), 32);
}
+FastRandomContext& FastRandomContext::operator=(FastRandomContext&& from) noexcept
+{
+ requires_seed = from.requires_seed;
+ rng = from.rng;
+ std::copy(std::begin(from.bytebuf), std::end(from.bytebuf), std::begin(bytebuf));
+ bytebuf_size = from.bytebuf_size;
+ bitbuf = from.bitbuf;
+ bitbuf_size = from.bitbuf_size;
+ from.requires_seed = true;
+ from.bytebuf_size = 0;
+ from.bitbuf_size = 0;
+ return *this;
+}
+
void RandomInit()
{
RDRandInit();