Change from 'this' to L'this' and remove the cast that was hiding this mismatch.
authorBo Xu <bo_xu@foxitsoftware.com>
Fri, 14 Nov 2014 22:18:05 +0000 (14:18 -0800)
committerBo Xu <bo_xu@foxitsoftware.com>
Fri, 14 Nov 2014 22:18:05 +0000 (14:18 -0800)
Found by VC++'s /analyze. Warning was:

fpdfsdk\src\javascript\js_runtime.cpp(352) : warning C6276:
Cast between semantically different string types:  char * to wchar_t *.
Use of invalid string can lead to undefined behavior.

This mismatch has been there as far back as the history goes (to May of this year).

It looks like a real bug to me. However I don't know the implications of this bug and why it would not have been noticed at run-time.

The code has been this way as far back as the git history goes, but that is only to May 2014.

Original patch from Bruce Dawson(brucedawson@chromium.org)

BUG=427616
R=bo_xu@foxitsoftware.com

Review URL: https://codereview.chromium.org/705503004

fpdfsdk/src/javascript/JS_Runtime.cpp

index d7802b5..b0af094 100644 (file)
@@ -349,7 +349,7 @@ void CJS_Runtime::GetObjectNames(CFX_WideStringArray& array)
        array.Add(CJS_Zoomtype::m_pClassName);
 
        array.Add(CJS_App::m_pClassName);
-       array.Add((FX_LPCWSTR)"this"); 
+       array.Add(L"this");
        array.Add(CJS_Event::m_pClassName);     
 
        array.Add(CJS_Global::m_pClassName);