diff options
author | Ben Becker <ben.becker@10gen.com> | 2013-04-01 12:21:53 -0700 |
---|---|---|
committer | Ben Becker <ben.becker@10gen.com> | 2013-04-01 12:21:53 -0700 |
commit | d2febea6d4a66998682467aa0e4adc0d55365166 (patch) | |
tree | 7d40e3f5fc18da21bb76dc735e498d9812b2b11c /src/mongo/scripting | |
parent | b466593c214b031740c31e064b9124e17ce48467 (diff) | |
download | mongo-d2febea6d4a66998682467aa0e4adc0d55365166.tar.gz |
SERVER-9066: avoid duplicate JS field names
Diffstat (limited to 'src/mongo/scripting')
-rw-r--r-- | src/mongo/scripting/engine_v8.cpp | 10 | ||||
-rw-r--r-- | src/mongo/scripting/engine_v8.h | 2 |
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; }; |