summaryrefslogtreecommitdiff
path: root/src/mongo/bson/oid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/bson/oid.cpp')
-rw-r--r--src/mongo/bson/oid.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/mongo/bson/oid.cpp b/src/mongo/bson/oid.cpp
index 0f08d6c56b6..ebceefa04fa 100644
--- a/src/mongo/bson/oid.cpp
+++ b/src/mongo/bson/oid.cpp
@@ -54,9 +54,9 @@ OID::InstanceUnique _instanceUnique;
MONGO_INITIALIZER_GENERAL(OIDGeneration, MONGO_NO_PREREQUISITES, ("default"))
(InitializerContext* context) {
- std::unique_ptr<SecureRandom> entropy(SecureRandom::create());
- counter = std::make_unique<AtomicWord<int64_t>>(entropy->nextInt64());
- _instanceUnique = OID::InstanceUnique::generate(*entropy);
+ SecureRandom entropy;
+ counter = std::make_unique<AtomicWord<int64_t>>(entropy.nextInt64());
+ _instanceUnique = OID::InstanceUnique::generate(entropy);
return Status::OK();
}
@@ -72,9 +72,8 @@ OID::Increment OID::Increment::next() {
}
OID::InstanceUnique OID::InstanceUnique::generate(SecureRandom& entropy) {
- int64_t rand = entropy.nextInt64();
OID::InstanceUnique u;
- std::memcpy(u.bytes, &rand, kInstanceUniqueSize);
+ entropy.fill(u.bytes, kInstanceUniqueSize);
return u;
}
@@ -119,8 +118,8 @@ size_t OID::Hasher::operator()(const OID& oid) const {
}
void OID::regenMachineId() {
- std::unique_ptr<SecureRandom> entropy(SecureRandom::create());
- _instanceUnique = InstanceUnique::generate(*entropy);
+ SecureRandom entropy;
+ _instanceUnique = InstanceUnique::generate(entropy);
}
unsigned OID::getMachineId() {