diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/fsdk_actionhandler.cpp | 17 | ||||
-rw-r--r-- | fpdfsdk/javascript/Document.cpp | 16 | ||||
-rw-r--r-- | fpdfsdk/javascript/app.cpp | 8 |
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()); |