diff options
Diffstat (limited to 'src/mongo/db/pipeline/value.cpp')
-rw-r--r-- | src/mongo/db/pipeline/value.cpp | 21 |
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) { |