summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2014-09-25 13:22:30 -0700
committerTom Sepez <tsepez@chromium.org>2014-09-25 13:22:30 -0700
commit0b355c1d00fac3b31bf40a31e272886cab1abd10 (patch)
treeea99f8719ee2a6b92329d2cbf0824f86fe7950c8
parent8316f3a43c7166d02f6788d05d823ce46cea16ea (diff)
downloadpdfium-0b355c1d00fac3b31bf40a31e272886cab1abd10.tar.xz
Merge M38: Fix confusion between length in bytes and length in characters in app::response().
I also clean up the code while we are here, rewriting a strange switch statement and tidying whitespace. BUG=406142 TBR=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/498773004 (cherry picked from commit 48f26c5a67a321c61649405c1e241d4fc480cbb3) Review URL: https://codereview.chromium.org/599203006
-rw-r--r--fpdfsdk/src/javascript/app.cpp44
1 files changed, 17 insertions, 27 deletions
diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp
index c9a9ef7017..1c4da08ccb 100644
--- a/fpdfsdk/src/javascript/app.cpp
+++ b/fpdfsdk/src/javascript/app.cpp
@@ -1045,49 +1045,39 @@ FX_BOOL app::response(OBJ_METHOD_PARAMS)
{
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();
+ swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
pValue = JS_GetObjectElement(isolate,pObj,L"cTitle");
- swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+ swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
pValue = JS_GetObjectElement(isolate,pObj,L"cDefault");
- swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+ swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
pValue = JS_GetObjectElement(isolate,pObj,L"cLabel");
- swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
+ swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).operator CFX_WideString();
pValue = JS_GetObjectElement(isolate,pObj,L"bPassword");
- bPassWord = (bool)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
+ bPassWord = (bool)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue));
}
else
{
switch(iLength)
{
- case 1:
- swQuestion = params[0];
- break;
- case 2:
- swQuestion = params[0];
- swTitle = params[1];
- break;
+ case 5:
+ swLabel = params[4];
+ // FALLTHROUGH
+ case 4:
+ bPassWord = params[3];
+ // FALLTHROUGH
case 3:
- swQuestion = params[0];
- swTitle = params[1];
swDefault = params[2];
- break;
- case 4:
- swQuestion = params[0];
+ // FALLTHROUGH
+ case 2:
swTitle = params[1];
- swDefault = params[2];
- bPassWord = params[3];
- break;
- case 5:
+ // FALLTHROUGH
+ case 1:
swQuestion = params[0];
- swTitle = params[1];
- swDefault = params[2];
- bPassWord = params[3];
- swLabel = params[4];
- break;
+ // FALLTHROUGH
default:
break;
}
@@ -1115,7 +1105,7 @@ FX_BOOL app::response(OBJ_METHOD_PARAMS)
if (nLengthBytes > MAX_INPUT_BYTES)
nLengthBytes = MAX_INPUT_BYTES;
- vRet = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLengthBytes);
+ vRet = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLengthBytes / sizeof(unsigned short));
delete[] pBuff;
return TRUE;
}