summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/value.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/value.cpp')
-rw-r--r--src/mongo/db/pipeline/value.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/mongo/db/pipeline/value.cpp b/src/mongo/db/pipeline/value.cpp
index f6cd179f1a6..db1c3047bd9 100644
--- a/src/mongo/db/pipeline/value.cpp
+++ b/src/mongo/db/pipeline/value.cpp
@@ -242,13 +242,22 @@ Value::Value(const BSONArray& arr) : _storage(Array) {
_storage.putVector(vec.get());
}
-Value::Value(const vector<BSONObj>& arr) : _storage(Array) {
- intrusive_ptr<RCVector> vec(new RCVector);
- vec->vec.reserve(arr.size());
- for (auto&& obj : arr) {
- vec->vec.push_back(Value(obj));
+Value::Value(const vector<BSONObj>& vec) : _storage(Array) {
+ intrusive_ptr<RCVector> storageVec(new RCVector);
+ storageVec->vec.reserve(vec.size());
+ for (auto&& obj : vec) {
+ storageVec->vec.push_back(Value(obj));
}
- _storage.putVector(vec.get());
+ _storage.putVector(storageVec.get());
+}
+
+Value::Value(const vector<Document>& vec) : _storage(Array) {
+ intrusive_ptr<RCVector> storageVec(new RCVector);
+ storageVec->vec.reserve(vec.size());
+ for (auto&& obj : vec) {
+ storageVec->vec.push_back(Value(obj));
+ }
+ _storage.putVector(storageVec.get());
}
Value Value::createIntOrLong(long long longValue) {