diff options
author | Jason Carey <jcarey@argv.me> | 2015-10-06 20:23:08 -0400 |
---|---|---|
committer | Jason Carey <jcarey@argv.me> | 2015-10-06 20:26:14 -0400 |
commit | 8d65462cd4b56fd12d3fbe8799ee78be677bae38 (patch) | |
tree | f86313611afb4c9e4e5e04238f0e88f830ed49c2 /src/mongo/scripting/mozjs/bson.cpp | |
parent | 95060c27ed2dddcb6343a88f7aa405ed8a935ad7 (diff) | |
download | mongo-8d65462cd4b56fd12d3fbe8799ee78be677bae38.tar.gz |
SERVER-19977 Offer a stack based JSStringWrapper
Small string optimization for encoding utf8 strings from JS strings on
the stack. Additions to the api to use on stack buffers.
Diffstat (limited to 'src/mongo/scripting/mozjs/bson.cpp')
-rw-r--r-- | src/mongo/scripting/mozjs/bson.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mongo/scripting/mozjs/bson.cpp b/src/mongo/scripting/mozjs/bson.cpp index f2c30407845..9f0a6125d22 100644 --- a/src/mongo/scripting/mozjs/bson.cpp +++ b/src/mongo/scripting/mozjs/bson.cpp @@ -194,15 +194,16 @@ void BSONInfo::resolve(JSContext* cx, JS::HandleObject obj, JS::HandleId id, boo } IdWrapper idw(cx, id); + JSStringWrapper jsstr; - if (!holder->_readOnly && holder->_removed.count(idw.toString())) { + auto sname = idw.toStringData(&jsstr); + + if (!holder->_readOnly && holder->_removed.find(sname.toString()) != holder->_removed.end()) { return; } ObjectWrapper o(cx, obj); - std::string sname = IdWrapper(cx, id).toString(); - if (holder->_obj.hasField(sname)) { auto elem = holder->_obj[sname]; |