| Index: fpdfsdk/src/javascript/Document.cpp
|
| diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp
|
| index 04a3b80e3d42c7cb9b76f18118e0af85158e0278..c1bd0293514affec22b59eb93e6b1c29efbf3a61 100644
|
| --- a/fpdfsdk/src/javascript/Document.cpp
|
| +++ b/fpdfsdk/src/javascript/Document.cpp
|
| @@ -566,8 +566,6 @@ FX_BOOL Document::resetForm(IJS_Context* cc,
|
| const CJS_Parameters& params,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| - ASSERT(m_pDocument != NULL);
|
| -
|
| if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
|
| m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
|
| m_pDocument->GetPermissions(FPDFPERM_FILL_FORM)))
|
| @@ -575,13 +573,9 @@ FX_BOOL Document::resetForm(IJS_Context* cc,
|
|
|
| CPDFSDK_InterForm* pInterForm =
|
| (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
|
| - ASSERT(pInterForm != NULL);
|
| -
|
| CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
|
| - ASSERT(pPDFForm != NULL);
|
| -
|
| - v8::Isolate* isolate = GetIsolate(cc);
|
| - CJS_Array aName(isolate);
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + CJS_Array aName(pRuntime);
|
|
|
| if (params.size() > 0) {
|
| switch (params[0].GetType()) {
|
| @@ -596,10 +590,9 @@ FX_BOOL Document::resetForm(IJS_Context* cc,
|
| CFX_PtrArray aFields;
|
|
|
| for (int i = 0, isz = aName.GetLength(); i < isz; i++) {
|
| - CJS_Value valElement(isolate);
|
| + CJS_Value valElement(pRuntime);
|
| aName.GetElement(i, valElement);
|
| CFX_WideString swVal = valElement.ToCFXWideString();
|
| -
|
| for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; j++) {
|
| aFields.Add((void*)pPDFForm->GetField(j, swVal));
|
| }
|
| @@ -629,7 +622,6 @@ FX_BOOL Document::submitForm(IJS_Context* cc,
|
| const CJS_Parameters& params,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| - ASSERT(m_pDocument != NULL);
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| int nSize = params.size();
|
| if (nSize < 1) {
|
| @@ -637,11 +629,12 @@ FX_BOOL Document::submitForm(IJS_Context* cc,
|
| return FALSE;
|
| }
|
|
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + v8::Isolate* isolate = pRuntime->GetIsolate();
|
| + CJS_Array aFields(pRuntime);
|
| CFX_WideString strURL;
|
| FX_BOOL bFDF = TRUE;
|
| FX_BOOL bEmpty = FALSE;
|
| - v8::Isolate* isolate = GetIsolate(cc);
|
| - CJS_Array aFields(isolate);
|
|
|
| CJS_Value v = params[0];
|
| if (v.GetType() == CJS_Value::VT_string) {
|
| @@ -657,17 +650,19 @@ FX_BOOL Document::submitForm(IJS_Context* cc,
|
| v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"cURL");
|
| if (!pValue.IsEmpty())
|
| strURL =
|
| - CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| +
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"bFDF");
|
| - bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
| + bFDF = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
| +
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"bEmpty");
|
| - bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
| + bEmpty = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
| +
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"aFields");
|
| aFields.Attach(
|
| - CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
|
| + CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
|
| }
|
|
|
| - CJS_Runtime* pRuntime = pContext->GetJSRuntime();
|
| CPDFSDK_InterForm* pInterForm =
|
| (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
|
| CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
|
| @@ -683,7 +678,7 @@ FX_BOOL Document::submitForm(IJS_Context* cc,
|
|
|
| CFX_PtrArray fieldObjects;
|
| for (int i = 0, sz = aFields.GetLength(); i < sz; i++) {
|
| - CJS_Value valName(isolate);
|
| + CJS_Value valName(pRuntime);
|
| aFields.GetElement(i, valName);
|
|
|
| CFX_WideString sName = valName.ToCFXWideString();
|
| @@ -735,8 +730,6 @@ FX_BOOL Document::mailDoc(IJS_Context* cc,
|
| const CJS_Parameters& params,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| - ASSERT(m_pDocument != NULL);
|
| -
|
| FX_BOOL bUI = TRUE;
|
| CFX_WideString cTo = L"";
|
| CFX_WideString cCc = L"";
|
| @@ -757,36 +750,34 @@ FX_BOOL Document::mailDoc(IJS_Context* cc,
|
| if (params.size() >= 6)
|
| cMsg = params[5].ToCFXWideString();
|
|
|
| - v8::Isolate* isolate = GetIsolate(cc);
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + v8::Isolate* isolate = pRuntime->GetIsolate();
|
|
|
| if (params.size() >= 1 && params[0].GetType() == CJS_Value::VT_object) {
|
| v8::Local<v8::Object> pObj = params[0].ToV8Object();
|
|
|
| v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"bUI");
|
| - bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
| + bUI = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
|
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"cTo");
|
| - cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + cTo = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
|
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"cCc");
|
| - cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + cCc = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
|
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"cBcc");
|
| - cBcc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + cBcc =
|
| + CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
|
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"cSubject");
|
| cSubject =
|
| - CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
|
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"cMsg");
|
| - cMsg = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| + cMsg =
|
| + CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
| }
|
|
|
| - CJS_Context* pContext = (CJS_Context*)cc;
|
| - ASSERT(pContext != NULL);
|
| - CJS_Runtime* pRuntime = pContext->GetJSRuntime();
|
| - ASSERT(pRuntime != NULL);
|
| -
|
| pRuntime->BeginBlock();
|
| CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
|
| pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(),
|
| @@ -1442,13 +1433,11 @@ FX_BOOL Document::icons(IJS_Context* cc,
|
| return TRUE;
|
| }
|
|
|
| - CJS_Array Icons(m_isolate);
|
| + CJS_Context* pContext = static_cast<CJS_Context*>(cc);
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + CJS_Array Icons(pRuntime);
|
| IconElement* pIconElement = NULL;
|
| int iIconTreeLength = m_pIconTree->GetLength();
|
| -
|
| - CJS_Context* pContext = (CJS_Context*)cc;
|
| - CJS_Runtime* pRuntime = pContext->GetJSRuntime();
|
| -
|
| for (int i = 0; i < iIconTreeLength; i++) {
|
| pIconElement = (*m_pIconTree)[i];
|
|
|
| @@ -1467,7 +1456,7 @@ FX_BOOL Document::icons(IJS_Context* cc,
|
|
|
| pIcon->SetStream(pIconElement->IconStream->GetStream());
|
| pIcon->SetIconName(pIconElement->IconName);
|
| - Icons.SetElement(i, CJS_Value(m_isolate, pJS_Icon));
|
| + Icons.SetElement(i, CJS_Value(pRuntime, pJS_Icon));
|
| }
|
|
|
| vp << Icons;
|
| @@ -1805,27 +1794,25 @@ FX_BOOL Document::deletePages(IJS_Context* cc,
|
| const CJS_Parameters& params,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| - v8::Isolate* isolate = GetIsolate(cc);
|
| - ASSERT(m_pDocument != NULL);
|
| -
|
| if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
|
| m_pDocument->GetPermissions(FPDFPERM_ASSEMBLE)))
|
| return FALSE;
|
|
|
| - int iSize = params.size();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + v8::Isolate* isolate = pRuntime->GetIsolate();
|
|
|
| + int iSize = params.size();
|
| int nStart = 0;
|
| int nEnd = 0;
|
| -
|
| if (iSize < 1) {
|
| } else if (iSize == 1) {
|
| if (params[0].GetType() == CJS_Value::VT_object) {
|
| v8::Local<v8::Object> pObj = params[0].ToV8Object();
|
| v8::Local<v8::Value> pValue =
|
| FXJS_GetObjectElement(isolate, pObj, L"nStart");
|
| - nStart = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
| + nStart = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
| pValue = FXJS_GetObjectElement(isolate, pObj, L"nEnd");
|
| - nEnd = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
| + nEnd = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
| } else {
|
| nStart = params[0].ToInt();
|
| }
|
| @@ -1835,7 +1822,6 @@ FX_BOOL Document::deletePages(IJS_Context* cc,
|
| }
|
|
|
| int nTotal = m_pDocument->GetPageCount();
|
| -
|
| if (nStart < 0)
|
| nStart = 0;
|
| if (nStart >= nTotal)
|
|
|