summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/include/javascript/JS_Object.h6
-rw-r--r--fpdfsdk/src/javascript/JS_Object.cpp17
-rw-r--r--fpdfsdk/src/javascript/JS_Value.cpp6
-rw-r--r--fpdfsdk/src/javascript/global.cpp42
4 files changed, 30 insertions, 41 deletions
diff --git a/fpdfsdk/include/javascript/JS_Object.h b/fpdfsdk/include/javascript/JS_Object.h
index a7772f1cf9..c7f92ac61d 100644
--- a/fpdfsdk/include/javascript/JS_Object.h
+++ b/fpdfsdk/include/javascript/JS_Object.h
@@ -60,9 +60,7 @@ class CJS_Object {
virtual FX_BOOL InitInstance(IFXJS_Context* cc) { return TRUE; }
virtual FX_BOOL ExitInstance() { return TRUE; }
- operator v8::Local<v8::Object>() {
- return v8::Local<v8::Object>::New(m_pIsolate, m_pObject);
- }
+ v8::Local<v8::Object> ToV8Object() { return m_pV8Object.Get(m_pIsolate); }
// Takes ownership of |pObj|.
void SetEmbedObject(CJS_EmbedObj* pObj) { m_pEmbedObj.reset(pObj); }
@@ -81,7 +79,7 @@ class CJS_Object {
protected:
nonstd::unique_ptr<CJS_EmbedObj> m_pEmbedObj;
- v8::Global<v8::Object> m_pObject;
+ v8::Global<v8::Object> m_pV8Object;
v8::Isolate* m_pIsolate;
};
diff --git a/fpdfsdk/src/javascript/JS_Object.cpp b/fpdfsdk/src/javascript/JS_Object.cpp
index 6891e6fc60..3cffec785d 100644
--- a/fpdfsdk/src/javascript/JS_Object.cpp
+++ b/fpdfsdk/src/javascript/JS_Object.cpp
@@ -83,22 +83,21 @@ void DisposeObject(const v8::WeakCallbackInfo<CJS_Object>& data) {
data.SetSecondPassCallback(FreeObject);
}
-CJS_Object::CJS_Object(v8::Local<v8::Object> pObject) : m_pEmbedObj(NULL) {
- v8::Local<v8::Context> context = pObject->CreationContext();
- m_pIsolate = context->GetIsolate();
- m_pObject.Reset(m_pIsolate, pObject);
-};
+CJS_Object::CJS_Object(v8::Local<v8::Object> pObject) {
+ m_pIsolate = pObject->CreationContext()->GetIsolate();
+ m_pV8Object.Reset(m_pIsolate, pObject);
+}
CJS_Object::~CJS_Object() {
- m_pObject.Reset();
-};
+}
void CJS_Object::MakeWeak() {
- m_pObject.SetWeak(this, DisposeObject, v8::WeakCallbackType::kInternalFields);
+ m_pV8Object.SetWeak(this, DisposeObject,
+ v8::WeakCallbackType::kInternalFields);
}
void CJS_Object::Dispose() {
- m_pObject.Reset();
+ m_pV8Object.Reset();
}
CPDFSDK_PageView* CJS_Object::JSGetPageView(IFXJS_Context* cc) {
diff --git a/fpdfsdk/src/javascript/JS_Value.cpp b/fpdfsdk/src/javascript/JS_Value.cpp
index 23def5dc9c..a07c61f108 100644
--- a/fpdfsdk/src/javascript/JS_Value.cpp
+++ b/fpdfsdk/src/javascript/JS_Value.cpp
@@ -61,7 +61,7 @@ CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Document* pJsDoc)
: m_isolate(isolate) {
m_eType = VT_object;
if (pJsDoc)
- m_pValue = (v8::Local<v8::Object>)*pJsDoc;
+ m_pValue = pJsDoc->ToV8Object();
}
CJS_Value::CJS_Value(v8::Isolate* isolate, const FX_WCHAR* pWstr)
@@ -172,13 +172,13 @@ void CJS_Value::operator=(v8::Local<v8::Object> pObj) {
void CJS_Value::operator=(CJS_Object* pObj) {
if (pObj)
- operator=((v8::Local<v8::Object>)*pObj);
+ operator=(pObj->ToV8Object());
}
void CJS_Value::operator=(CJS_Document* pJsDoc) {
m_eType = VT_object;
if (pJsDoc) {
- m_pValue = static_cast<v8::Local<v8::Object>>(*pJsDoc);
+ m_pValue = pJsDoc->ToV8Object();
}
}
diff --git a/fpdfsdk/src/javascript/global.cpp b/fpdfsdk/src/javascript/global.cpp
index 51455d0cfa..20276c359d 100644
--- a/fpdfsdk/src/javascript/global.cpp
+++ b/fpdfsdk/src/javascript/global.cpp
@@ -243,7 +243,7 @@ void JSGlobalAlternate::UpdateGlobalPersistentVariables() {
SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER,
pData->data.dData, false, "",
v8::Local<v8::Object>(), pData->bPersistent == 1);
- FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
+ FXJS_PutObjectNumber(NULL, m_pJSObject->ToV8Object(),
pData->data.sKey.UTF8Decode().c_str(),
pData->data.dData);
break;
@@ -251,7 +251,7 @@ void JSGlobalAlternate::UpdateGlobalPersistentVariables() {
SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
(bool)(pData->data.bData == 1), "",
v8::Local<v8::Object>(), pData->bPersistent == 1);
- FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
+ FXJS_PutObjectBoolean(NULL, m_pJSObject->ToV8Object(),
pData->data.sKey.UTF8Decode().c_str(),
(bool)(pData->data.bData == 1));
break;
@@ -259,29 +259,27 @@ void JSGlobalAlternate::UpdateGlobalPersistentVariables() {
SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0,
false, pData->data.sData, v8::Local<v8::Object>(),
pData->bPersistent == 1);
- FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
+ FXJS_PutObjectString(NULL, m_pJSObject->ToV8Object(),
pData->data.sKey.UTF8Decode().c_str(),
pData->data.sData.UTF8Decode().c_str());
break;
case JS_GLOBALDATA_TYPE_OBJECT: {
- v8::Isolate* pRuntime =
- FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
+ v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object());
v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
PutObjectProperty(pObj, &pData->data);
SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0,
- false, "", (v8::Local<v8::Object>)pObj,
- pData->bPersistent == 1);
- FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
- pData->data.sKey.UTF8Decode().c_str(),
- (v8::Local<v8::Object>)pObj);
+ false, "", pObj, pData->bPersistent == 1);
+ FXJS_PutObjectObject(NULL, m_pJSObject->ToV8Object(),
+ pData->data.sKey.UTF8Decode().c_str(), pObj);
+
} break;
case JS_GLOBALDATA_TYPE_NULL:
SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false,
"", v8::Local<v8::Object>(),
pData->bPersistent == 1);
- FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
+ FXJS_PutObjectNull(NULL, m_pJSObject->ToV8Object(),
pData->data.sKey.UTF8Decode().c_str());
break;
}
@@ -396,33 +394,27 @@ void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj,
switch (pObjData->nType) {
case JS_GLOBALDATA_TYPE_NUMBER:
- FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)pObj,
- pObjData->sKey.UTF8Decode().c_str(),
+ FXJS_PutObjectNumber(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
pObjData->dData);
break;
case JS_GLOBALDATA_TYPE_BOOLEAN:
- FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)pObj,
- pObjData->sKey.UTF8Decode().c_str(),
- (bool)(pObjData->bData == 1));
+ FXJS_PutObjectBoolean(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
+ pObjData->bData == 1);
break;
case JS_GLOBALDATA_TYPE_STRING:
- FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)pObj,
- pObjData->sKey.UTF8Decode().c_str(),
+ FXJS_PutObjectString(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
pObjData->sData.UTF8Decode().c_str());
break;
case JS_GLOBALDATA_TYPE_OBJECT: {
- v8::Isolate* pRuntime =
- FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
+ v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object());
v8::Local<v8::Object> pNewObj =
FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
PutObjectProperty(pNewObj, pObjData);
- FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)pObj,
- pObjData->sKey.UTF8Decode().c_str(),
- (v8::Local<v8::Object>)pNewObj);
+ FXJS_PutObjectObject(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(),
+ pNewObj);
} break;
case JS_GLOBALDATA_TYPE_NULL:
- FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)pObj,
- pObjData->sKey.UTF8Decode().c_str());
+ FXJS_PutObjectNull(NULL, pObj, pObjData->sKey.UTF8Decode().c_str());
break;
}
}