summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2014-08-22 15:52:05 -0700
committerTom Sepez <tsepez@chromium.org>2014-08-22 15:52:05 -0700
commit48f26c5a67a321c61649405c1e241d4fc480cbb3 (patch)
tree12e87d4cf3ef09614c18c6d3dc1d3c6da50fd277
parente9bf0e918a731204f16cbd6e484f33190c10803e (diff)
downloadpdfium-48f26c5a67a321c61649405c1e241d4fc480cbb3.tar.xz
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 R=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/498773004
-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;
}