summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/fsdk_actionhandler.cpp17
-rw-r--r--fpdfsdk/javascript/Document.cpp16
-rw-r--r--fpdfsdk/javascript/app.cpp8
3 files changed, 13 insertions, 28 deletions
diff --git a/fpdfsdk/fsdk_actionhandler.cpp b/fpdfsdk/fsdk_actionhandler.cpp
index dc99f32f34..16724d5ac4 100644
--- a/fpdfsdk/fsdk_actionhandler.cpp
+++ b/fpdfsdk/fsdk_actionhandler.cpp
@@ -7,6 +7,7 @@
#include "fpdfsdk/fsdk_actionhandler.h"
#include <set>
+#include <vector>
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfdoc/cpdf_formfield.h"
@@ -420,19 +421,13 @@ void CPDFSDK_ActionHandler::DoAction_GoTo(
int nPageIndex = MyDest.GetPageIndex(pPDFDocument);
int nFitType = MyDest.GetZoomMode();
const CPDF_Array* pMyArray = ToArray(MyDest.GetObject());
- float* pPosAry = nullptr;
- int sizeOfAry = 0;
+ std::vector<float> posArray;
if (pMyArray) {
- pPosAry = new float[pMyArray->GetCount()];
- int j = 0;
- for (size_t i = 2; i < pMyArray->GetCount(); i++) {
- pPosAry[j++] = pMyArray->GetFloatAt(i);
- }
- sizeOfAry = j;
+ for (size_t i = 2; i < pMyArray->GetCount(); i++)
+ posArray.push_back(pMyArray->GetFloatAt(i));
}
-
- pFormFillEnv->DoGoToAction(nPageIndex, nFitType, pPosAry, sizeOfAry);
- delete[] pPosAry;
+ pFormFillEnv->DoGoToAction(nPageIndex, nFitType, posArray.data(),
+ posArray.size());
}
void CPDFSDK_ActionHandler::DoAction_GoToR(
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
index 45c22b106c..38a4c12177 100644
--- a/fpdfsdk/javascript/Document.cpp
+++ b/fpdfsdk/javascript/Document.cpp
@@ -1611,24 +1611,16 @@ bool Document::gotoNamedDest(CJS_Runtime* pRuntime,
CPDF_Dest dest(destArray);
const CPDF_Array* arrayObject = ToArray(dest.GetObject());
-
- std::unique_ptr<float[]> scrollPositionArray;
- int scrollPositionArraySize = 0;
-
+ std::vector<float> scrollPositionArray;
if (arrayObject) {
- scrollPositionArray.reset(new float[arrayObject->GetCount()]);
- int j = 0;
for (size_t i = 2; i < arrayObject->GetCount(); i++)
- scrollPositionArray[j++] = arrayObject->GetFloatAt(i);
- scrollPositionArraySize = j;
+ scrollPositionArray.push_back(arrayObject->GetFloatAt(i));
}
-
pRuntime->BeginBlock();
m_pFormFillEnv->DoGoToAction(dest.GetPageIndex(pDocument), dest.GetZoomMode(),
- scrollPositionArray.get(),
- scrollPositionArraySize);
+ scrollPositionArray.data(),
+ scrollPositionArray.size());
pRuntime->EndBlock();
-
return true;
}
diff --git a/fpdfsdk/javascript/app.cpp b/fpdfsdk/javascript/app.cpp
index 6d31d7e2e4..c9d7c3fd50 100644
--- a/fpdfsdk/javascript/app.cpp
+++ b/fpdfsdk/javascript/app.cpp
@@ -748,12 +748,10 @@ bool app::response(CJS_Runtime* pRuntime,
swLabel = newParams[4].ToCFXWideString(pRuntime);
const int MAX_INPUT_BYTES = 2048;
- std::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]);
- memset(pBuff.get(), 0, MAX_INPUT_BYTES + 2);
-
+ std::vector<uint8_t> pBuff(MAX_INPUT_BYTES + 2);
int nLengthBytes = pRuntime->GetFormFillEnv()->JS_appResponse(
swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(), swLabel.c_str(),
- bPassword, pBuff.get(), MAX_INPUT_BYTES);
+ bPassword, pBuff.data(), MAX_INPUT_BYTES);
if (nLengthBytes < 0 || nLengthBytes > MAX_INPUT_BYTES) {
sError = JSGetStringFromID(IDS_STRING_JSPARAM_TOOLONG);
@@ -761,7 +759,7 @@ bool app::response(CJS_Runtime* pRuntime,
}
vRet = CJS_Value(pRuntime, CFX_WideString::FromUTF16LE(
- reinterpret_cast<uint16_t*>(pBuff.get()),
+ reinterpret_cast<uint16_t*>(pBuff.data()),
nLengthBytes / sizeof(uint16_t))
.c_str());