| Index: fpdfsdk/src/javascript/app.cpp
|
| diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp
|
| index 3b92a992d9d0be2b46db2266d0e51847b0a34fdd..0546be8f8699a93b7be4c800c4cc81005b3f3979 100644
|
| --- a/fpdfsdk/src/javascript/app.cpp
|
| +++ b/fpdfsdk/src/javascript/app.cpp
|
| @@ -153,8 +153,8 @@ FX_BOOL app::activeDocs(OBJ_PROP_PARAMS)
|
| CJS_Array aDocs(pRuntime->GetIsolate());
|
| // int iNumDocs = pApp->CountDocuments();
|
|
|
| -// for(int iIndex = 0; iIndex<iNumDocs; iIndex++)
|
| -// {
|
| +// for(int iIndex = 0; iIndex<iNumDocs; iIndex++)
|
| +// {
|
| CPDFSDK_Document* pDoc = pApp->GetCurrentDoc();
|
| if (pDoc)
|
| {
|
| @@ -210,10 +210,10 @@ FX_BOOL app::calculate(OBJ_PROP_PARAMS)
|
| ASSERT(pRuntime != NULL);
|
|
|
| CJS_Array aDocs(pRuntime->GetIsolate());
|
| -// int iNumDocs = pApp->CountDocuments();
|
| -//
|
| -// for (int iIndex = 0;iIndex < iNumDocs; iIndex++)
|
| -// {
|
| +// int iNumDocs = pApp->CountDocuments();
|
| +//
|
| +// for (int iIndex = 0;iIndex < iNumDocs; iIndex++)
|
| +// {
|
| if (CPDFSDK_Document* pDoc = pApp->GetCurrentDoc())
|
| {
|
| CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDoc->GetInterForm();
|
| @@ -251,10 +251,10 @@ FX_BOOL app::viewerType(OBJ_PROP_PARAMS)
|
|
|
| if (vp.IsGetting())
|
| {
|
| -// if (pApp->GetAppName() == PHANTOM)
|
| -// vp << JS_STR_VIEWERTYPE_STANDARD;
|
| -// else
|
| -// vp << JS_STR_VIEWERTYPE_READER;
|
| +// if (pApp->GetAppName() == PHANTOM)
|
| +// vp << JS_STR_VIEWERTYPE_STANDARD;
|
| +// else
|
| +// vp << JS_STR_VIEWERTYPE_READER;
|
| vp << L"unknown";
|
|
|
| //vp << pApp->GetAppTitle();
|
| @@ -367,8 +367,8 @@ FX_BOOL app::alert(OBJ_METHOD_PARAMS)
|
| CJS_Value* pValue = new CJS_Value(isolate);
|
| // if (iLenth == 1)
|
| // pValue = new CJS_Value(isolate);
|
| -// else if (iLenth > 1)
|
| -// pValue = new CJS_Value[iLenth];
|
| +// else if (iLenth > 1)
|
| +// pValue = new CJS_Value[iLenth];
|
|
|
| for(int i = 0; i < iLenth; i++)
|
| {
|
| @@ -379,16 +379,16 @@ FX_BOOL app::alert(OBJ_METHOD_PARAMS)
|
| }
|
|
|
| if(pValue) delete pValue;
|
| -// if ((iLenth > 1) && pValue)
|
| -// {
|
| -// delete[]pValue;
|
| -// pValue = NULL;
|
| -// }
|
| -// else if ((iLenth == 1) && pValue)
|
| -// {
|
| -// delete pValue;
|
| -// pValue = NULL;
|
| -// }
|
| +// if ((iLenth > 1) && pValue)
|
| +// {
|
| +// delete[]pValue;
|
| +// pValue = NULL;
|
| +// }
|
| +// else if ((iLenth == 1) && pValue)
|
| +// {
|
| +// delete pValue;
|
| +// pValue = NULL;
|
| +// }
|
| }
|
| }
|
|
|
| @@ -947,7 +947,7 @@ FX_BOOL app::browseForDoc(OBJ_METHOD_PARAMS)
|
| JS_PutObjectString(isolate,pRetObj, L"cFS", CFX_WideString::FromLocal("DOS"));
|
| }
|
|
|
| - vRet = pRetObj;
|
| + vRet = pRetObj;
|
|
|
| return TRUE;
|
| }
|
| @@ -1037,15 +1037,13 @@ FX_BOOL app::response(OBJ_METHOD_PARAMS)
|
| CFX_WideString swTitle = L"PDF";
|
| #endif
|
| CFX_WideString swDefault = L"";
|
| - CFX_WideString swResponse = L"";
|
| bool bPassWord = false;
|
| -
|
| +
|
| v8::Isolate* isolate = GetIsolate(cc);
|
| -
|
| - int iLength = params.size();
|
| +
|
| + int iLength = params.size();
|
| if (iLength > 0 && params[0].GetType() == VT_object)
|
| {
|
| -
|
| JSObject pObj = (JSObject )params[0];
|
| v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj,L"cQuestion");
|
| swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
|
| @@ -1101,22 +1099,25 @@ FX_BOOL app::response(OBJ_METHOD_PARAMS)
|
|
|
| CPDFDoc_Environment* pApp = pContext->GetReaderApp();
|
| ASSERT(pApp != NULL);
|
| - int nLength = 2048;
|
| - char* pBuff = new char[nLength];
|
| - nLength = pApp->JS_appResponse(swQuestion, swTitle, swDefault, swLabel, bPassWord, pBuff, nLength);
|
| - if(nLength<=0)
|
| +
|
| + const int MAX_INPUT_BYTES = 2048;
|
| + char* pBuff = new char[MAX_INPUT_BYTES + 2];
|
| + if (!pBuff)
|
| + return FALSE;
|
| +
|
| + memset(pBuff, 0, MAX_INPUT_BYTES + 2);
|
| + int nLengthBytes = pApp->JS_appResponse(swQuestion, swTitle, swDefault, swLabel, bPassWord, pBuff, MAX_INPUT_BYTES);
|
| + if (nLengthBytes <= 0)
|
| {
|
| - delete[] pBuff;
|
| vRet.SetNull();
|
| + delete[] pBuff;
|
| return FALSE;
|
| }
|
| - else
|
| - {
|
| - nLength = nLength > sizeof(pBuff) ? sizeof(pBuff) : nLength;
|
| - vRet = swResponse = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLength / 2);
|
| - }
|
| - delete[] pBuff;
|
| + if (nLengthBytes > MAX_INPUT_BYTES)
|
| + nLengthBytes = MAX_INPUT_BYTES;
|
|
|
| + vRet = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLengthBytes);
|
| + delete[] pBuff;
|
| return TRUE;
|
| }
|
|
|
|
|