summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/mozjs/bson.cpp
diff options
context:
space:
mode:
authorJason Carey <jcarey@argv.me>2015-10-06 20:23:08 -0400
committerJason Carey <jcarey@argv.me>2015-10-06 20:26:14 -0400
commit8d65462cd4b56fd12d3fbe8799ee78be677bae38 (patch)
treef86313611afb4c9e4e5e04238f0e88f830ed49c2 /src/mongo/scripting/mozjs/bson.cpp
parent95060c27ed2dddcb6343a88f7aa405ed8a935ad7 (diff)
downloadmongo-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.cpp7
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];