summaryrefslogtreecommitdiff
path: root/src/mongo/scripting
diff options
context:
space:
mode:
authorBen Becker <ben.becker@10gen.com>2013-04-01 12:21:53 -0700
committerBen Becker <ben.becker@10gen.com>2013-04-01 12:21:53 -0700
commitd2febea6d4a66998682467aa0e4adc0d55365166 (patch)
tree7d40e3f5fc18da21bb76dc735e498d9812b2b11c /src/mongo/scripting
parentb466593c214b031740c31e064b9124e17ce48467 (diff)
downloadmongo-d2febea6d4a66998682467aa0e4adc0d55365166.tar.gz
SERVER-9066: avoid duplicate JS field names
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r--src/mongo/scripting/engine_v8.cpp10
-rw-r--r--src/mongo/scripting/engine_v8.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/mongo/scripting/engine_v8.cpp b/src/mongo/scripting/engine_v8.cpp
index b39d9869581..30074fc01ed 100644
--- a/src/mongo/scripting/engine_v8.cpp
+++ b/src/mongo/scripting/engine_v8.cpp
@@ -130,7 +130,7 @@ namespace mongo {
string key = toSTLString(name);
BSONHolder* holder = unwrapHolder(info.Holder());
holder->_removed.erase(key);
- holder->_extra.push_back(key);
+ holder->_extra.insert(key);
holder->_modified = true;
// set into JS object
@@ -159,7 +159,7 @@ namespace mongo {
arr->Set(i, name);
}
- for (list<string>::iterator it = holder->_extra.begin();
+ for (set<string>::iterator it = holder->_extra.begin();
it != holder->_extra.end(); it++) {
string sname = *it;
if (added.count(sname))
@@ -174,7 +174,7 @@ namespace mongo {
string key = toSTLString(name);
BSONHolder* holder = unwrapHolder(info.Holder());
holder->_removed.insert(key);
- holder->_extra.remove(key);
+ holder->_extra.erase(key);
holder->_modified = true;
// also delete in JS obj
@@ -226,7 +226,7 @@ namespace mongo {
string key = str::stream() << index;
BSONHolder* holder = unwrapHolder(info.Holder());
holder->_removed.insert(key);
- holder->_extra.remove(key);
+ holder->_extra.erase(key);
holder->_modified = true;
// also delete in JS obj
@@ -265,7 +265,7 @@ namespace mongo {
string key = str::stream() << index;
BSONHolder* holder = unwrapHolder(info.Holder());
holder->_removed.erase(key);
- holder->_extra.push_back(key);
+ holder->_extra.insert(key);
holder->_modified = true;
// set into JS object
diff --git a/src/mongo/scripting/engine_v8.h b/src/mongo/scripting/engine_v8.h
index e8edc8bbba6..06cc7c37e29 100644
--- a/src/mongo/scripting/engine_v8.h
+++ b/src/mongo/scripting/engine_v8.h
@@ -448,7 +448,7 @@ namespace mongo {
V8Scope* _scope;
BSONObj _obj;
bool _modified;
- list<string> _extra;
+ set<string> _extra;
set<string> _removed;
};