diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2019-07-04 17:57:25 -0400 |
---|---|---|
committer | Billy Donahue <billy.donahue@mongodb.com> | 2019-07-09 14:32:01 -0400 |
commit | f2bb23436a46afacfc8e3dc65fda743fafe6b2c3 (patch) | |
tree | 990d9667db82f124bde3392c0240220a3707cbe1 /src/mongo/bson/bsonobjbuilder.h | |
parent | a7cb58fe04b1a13909e98829a9235eb4fa837e8c (diff) | |
download | mongo-f2bb23436a46afacfc8e3dc65fda743fafe6b2c3.tar.gz |
SERVER-42034 remove BSONObjBuilder::numStr
Callers are better with either DecimalCounter or std::to_string.
Diffstat (limited to 'src/mongo/bson/bsonobjbuilder.h')
-rw-r--r-- | src/mongo/bson/bsonobjbuilder.h | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/mongo/bson/bsonobjbuilder.h b/src/mongo/bson/bsonobjbuilder.h index 083d7580998..edd3c04ed77 100644 --- a/src/mongo/bson/bsonobjbuilder.h +++ b/src/mongo/bson/bsonobjbuilder.h @@ -674,14 +674,6 @@ public: _doneCalled = true; } - static std::string numStr(int i) { - if (i >= 0 && i < 100 && numStrsReady) - return numStrs[i]; - StringBuilder o; - o << i; - return o.str(); - } - /** Stream oriented way to add field names and values. */ BSONObjBuilderValueStream& operator<<(StringData name) { _s.endField(name); @@ -765,9 +757,6 @@ private: BSONObjBuilderValueStream _s; BSONSizeTracker* _tracker; bool _doneCalled; - - static const std::string numStrs[100]; // cache of 0 to 99 inclusive - static bool numStrsReady; // for static init safety }; class BSONArrayBuilder { @@ -916,17 +905,22 @@ private: template <class T> inline BSONObjBuilder& BSONObjBuilder::append(StringData fieldName, const std::vector<T>& vals) { BSONObjBuilder arrBuilder(subarrayStart(fieldName)); - for (unsigned int i = 0; i < vals.size(); ++i) - arrBuilder.append(numStr(i), vals[i]); + DecimalCounter<size_t> n; + for (unsigned int i = 0; i < vals.size(); ++i) { + arrBuilder.append(StringData{n}, vals[i]); + ++n; + } return *this; } template <class L> inline BSONObjBuilder& _appendIt(BSONObjBuilder& _this, StringData fieldName, const L& vals) { BSONObjBuilder arrBuilder; - int n = 0; - for (typename L::const_iterator i = vals.begin(); i != vals.end(); i++) - arrBuilder.append(BSONObjBuilder::numStr(n++), *i); + DecimalCounter<size_t> n; + for (typename L::const_iterator i = vals.begin(); i != vals.end(); i++) { + arrBuilder.append(StringData{n}, *i); + ++n; + } _this.appendArray(fieldName, arrBuilder.done()); return _this; } |