summaryrefslogtreecommitdiff
path: root/fpdfsdk/javascript/Document.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-10-26 09:28:59 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-10-26 17:14:48 +0000
commit3a1ba8efdbfffad723646dd878e6ca511f9f75bd (patch)
tree3d025f32729479faa9628668cac0654f13e45a37 /fpdfsdk/javascript/Document.cpp
parent8b6acddd1e25dd48582f954ea9e67861dbd4f50f (diff)
downloadpdfium-3a1ba8efdbfffad723646dd878e6ca511f9f75bd.tar.xz
Remove CJS_Array
This CL removes the CJS_Array wrapper and uses the v8 objects directly. Change-Id: I904f76e59e27d65db4b4d0bbd503fddb3e8cfc6f Reviewed-on: https://pdfium-review.googlesource.com/16830 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/javascript/Document.cpp')
-rw-r--r--fpdfsdk/javascript/Document.cpp61
1 files changed, 30 insertions, 31 deletions
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
index e4903a5976..0280af4f3b 100644
--- a/fpdfsdk/javascript/Document.cpp
+++ b/fpdfsdk/javascript/Document.cpp
@@ -507,15 +507,18 @@ CJS_Return Document::resetForm(
return CJS_Return(true);
}
- CJS_Array aName;
- if (params[0]->IsString())
- aName.SetElement(pRuntime, 0, params[0]);
- else
- aName = CJS_Array(pRuntime->ToArray(params[0]));
+ v8::Local<v8::Array> array;
+ if (params[0]->IsString()) {
+ array = pRuntime->NewArray();
+ pRuntime->PutArrayElement(array, 0, params[0]);
+ } else {
+ array = pRuntime->ToArray(params[0]);
+ }
std::vector<CPDF_FormField*> aFields;
- for (int i = 0, isz = aName.GetLength(pRuntime); i < isz; ++i) {
- WideString swVal = pRuntime->ToWideString(aName.GetElement(pRuntime, i));
+ for (size_t i = 0; i < pRuntime->GetArrayLength(array); ++i) {
+ WideString swVal =
+ pRuntime->ToWideString(pRuntime->GetArrayElement(array, i));
for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; ++j)
aFields.push_back(pPDFForm->GetField(j, swVal));
}
@@ -549,7 +552,7 @@ CJS_Return Document::submitForm(
if (!m_pFormFillEnv)
return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT));
- CJS_Array aFields;
+ v8::Local<v8::Array> aFields;
WideString strURL;
bool bFDF = true;
bool bEmpty = false;
@@ -560,7 +563,7 @@ CJS_Return Document::submitForm(
if (nSize > 2)
bEmpty = pRuntime->ToBoolean(params[2]);
if (nSize > 3)
- aFields = CJS_Array(pRuntime->ToArray(params[3]));
+ aFields = pRuntime->ToArray(params[3]);
} else if (params[0]->IsObject()) {
v8::Local<v8::Object> pObj = pRuntime->ToObject(params[0]);
v8::Local<v8::Value> pValue = pRuntime->GetObjectProperty(pObj, L"cURL");
@@ -569,13 +572,13 @@ CJS_Return Document::submitForm(
bFDF = pRuntime->ToBoolean(pRuntime->GetObjectProperty(pObj, L"bFDF"));
bEmpty = pRuntime->ToBoolean(pRuntime->GetObjectProperty(pObj, L"bEmpty"));
- aFields = CJS_Array(
- pRuntime->ToArray(pRuntime->GetObjectProperty(pObj, L"aFields")));
+ aFields = pRuntime->ToArray(pRuntime->GetObjectProperty(pObj, L"aFields"));
}
CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
- if (aFields.GetLength(pRuntime) == 0 && bEmpty) {
+
+ if (pRuntime->GetArrayLength(aFields) == 0 && bEmpty) {
if (pPDFInterForm->CheckRequiredFields(nullptr, true)) {
pRuntime->BeginBlock();
pInterForm->SubmitForm(strURL, false);
@@ -585,8 +588,9 @@ CJS_Return Document::submitForm(
}
std::vector<CPDF_FormField*> fieldObjects;
- for (int i = 0, sz = aFields.GetLength(pRuntime); i < sz; ++i) {
- WideString sName = pRuntime->ToWideString(aFields.GetElement(pRuntime, i));
+ for (size_t i = 0; i < pRuntime->GetArrayLength(aFields); ++i) {
+ WideString sName =
+ pRuntime->ToWideString(pRuntime->GetArrayElement(aFields, i));
CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j) {
CPDF_FormField* pField = pPDFForm->GetField(j, sName);
@@ -1063,8 +1067,7 @@ CJS_Return Document::getAnnots(
// the PDF spec.
int nPageNo = m_pFormFillEnv->GetPageCount();
- CJS_Array annots;
-
+ v8::Local<v8::Array> annots = pRuntime->NewArray();
for (int i = 0; i < nPageNo; ++i) {
CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(i);
if (!pPageView)
@@ -1084,15 +1087,13 @@ CJS_Return Document::getAnnots(
static_cast<CJS_Annot*>(pRuntime->GetObjectPrivate(pObj));
Annot* pAnnot = static_cast<Annot*>(pJS_Annot->GetEmbedObject());
pAnnot->SetSDKAnnot(static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur.Get()));
- annots.SetElement(pRuntime, i,
- pJS_Annot
- ? v8::Local<v8::Value>(pJS_Annot->ToV8Object())
- : v8::Local<v8::Value>());
+ pRuntime->PutArrayElement(
+ annots, i,
+ pJS_Annot ? v8::Local<v8::Value>(pJS_Annot->ToV8Object())
+ : v8::Local<v8::Value>());
}
}
- if (annots.ToV8Value().IsEmpty())
- return CJS_Return(pRuntime->NewArray());
- return CJS_Return(annots.ToV8Value());
+ return CJS_Return(annots);
}
CJS_Return Document::getAnnot3D(
@@ -1148,7 +1149,7 @@ CJS_Return Document::get_icons(CJS_Runtime* pRuntime) {
if (m_IconNames.empty())
return CJS_Return(pRuntime->NewUndefined());
- CJS_Array Icons;
+ v8::Local<v8::Array> Icons = pRuntime->NewArray();
int i = 0;
for (const auto& name : m_IconNames) {
v8::Local<v8::Object> pObj =
@@ -1160,14 +1161,12 @@ CJS_Return Document::get_icons(CJS_Runtime* pRuntime) {
static_cast<CJS_Icon*>(pRuntime->GetObjectPrivate(pObj));
Icon* pIcon = static_cast<Icon*>(pJS_Icon->GetEmbedObject());
pIcon->SetIconName(name);
- Icons.SetElement(pRuntime, i++,
- pJS_Icon ? v8::Local<v8::Value>(pJS_Icon->ToV8Object())
- : v8::Local<v8::Value>());
+ pRuntime->PutArrayElement(Icons, i++,
+ pJS_Icon
+ ? v8::Local<v8::Value>(pJS_Icon->ToV8Object())
+ : v8::Local<v8::Value>());
}
-
- if (Icons.ToV8Value().IsEmpty())
- return CJS_Return(pRuntime->NewArray());
- return CJS_Return(Icons.ToV8Value());
+ return CJS_Return(Icons);
}
CJS_Return Document::set_icons(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) {