summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/engine_v8.cpp
diff options
context:
space:
mode:
authorLaszlo Boszormenyi (GCS) <gcs@debian.org>2015-08-08 18:57:06 +0200
committerFathi Boudra <fabo@debian.org>2015-12-15 11:15:36 +0200
commit34eb495f9fee1acb705465102a8ae5f5b78cb149 (patch)
tree39f258113dafec114383eee975c2c718d4235227 /src/mongo/scripting/engine_v8.cpp
parenteb56ab9a71cbca16969e19586c9aad2136c24875 (diff)
parentb19ca2d7025ec90a916906e912f3c97113da38b2 (diff)
Imported Debian patch 1:2.4.14-3debian/2.4.14-3
Diffstat (limited to 'src/mongo/scripting/engine_v8.cpp')
-rw-r--r--src/mongo/scripting/engine_v8.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/scripting/engine_v8.cpp b/src/mongo/scripting/engine_v8.cpp
index 5aa40b1abf0..1ad61ae9907 100644
--- a/src/mongo/scripting/engine_v8.cpp
+++ b/src/mongo/scripting/engine_v8.cpp
@@ -603,8 +603,7 @@ namespace mongo {
// execution terminated
return v8::Undefined();
- v8::Local<v8::External> f =
- v8::External::Cast(*args.Callee()->Get(scope->strLitToV8("_v8_function")));
+ v8::Local<v8::External> f = v8::Local<v8::External>::Cast(args.Data());
v8Function function = (v8Function)(f->Value());
v8::Handle<v8::Value> ret;
string exceptionText;
@@ -1163,8 +1162,9 @@ namespace mongo {
}
v8::Handle<v8::FunctionTemplate> V8Scope::createV8Function(v8Function func) {
- v8::Handle<v8::FunctionTemplate> ft = v8::FunctionTemplate::New(v8Callback);
- ft->Set(strLitToV8("_v8_function"), v8::External::New(reinterpret_cast<void*>(func)),
+ v8::Handle<v8::Value> funcHandle = v8::External::New(reinterpret_cast<void*>(func));
+ v8::Handle<v8::FunctionTemplate> ft = v8::FunctionTemplate::New(v8Callback, funcHandle);
+ ft->Set(strLitToV8("_v8_function"), v8::Boolean::New(true),
static_cast<v8::PropertyAttribute>(v8::DontEnum | v8::ReadOnly));
return ft;
}
@@ -1514,11 +1514,11 @@ namespace mongo {
verify(BinDataFT()->HasInstance(obj));
verify(obj->InternalFieldCount() == 1);
- int len = obj->Get(strLitToV8("len"))->ToInt32()->Value();
+ std::string binData(base64::decode(toSTLString(obj->GetInternalField(0))));
b.appendBinData(elementName,
- len,
+ binData.size(),
mongo::BinDataType(obj->Get(strLitToV8("type"))->ToInt32()->Value()),
- base64::decode(toSTLString(obj->GetInternalField(0))).c_str());
+ binData.c_str());
}
OID V8Scope::v8ToMongoObjectID(v8::Handle<v8::Object> obj) {