diff options
author | Tom Sepez <tsepez@chromium.org> | 2014-08-22 15:52:05 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2014-08-22 15:52:05 -0700 |
commit | 48f26c5a67a321c61649405c1e241d4fc480cbb3 (patch) | |
tree | 12e87d4cf3ef09614c18c6d3dc1d3c6da50fd277 | |
parent | e9bf0e918a731204f16cbd6e484f33190c10803e (diff) | |
download | pdfium-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.cpp | 44 |
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; } |