From b69da0b96ffdad124efd1b48d51c617bb216a98e Mon Sep 17 00:00:00 2001 From: Bruce Dawson Date: Mon, 8 Dec 2014 13:10:02 -0800 Subject: Getting rid of more (FX_LPCWSTR) casts and fixing two bugs revealed by this. Since casts to FX_LPCWSTR have been shown to hide bugs I tried removing more of them, targeting those places where a cast was used to force a conversion from CFX_WideString to FX_LPCWSTR, replacing these casts with calls to the newly added .c_str() function. This revealed two places where the cast was hiding a bug -- where ->c_str() was required instead! This removes ~33 FX_LPCWSTR casts and there are ~31 left, many of which will go away in some future change. Also includes this change: Removing unnecessary casts from wchar_t* to wchar_t*, by various names. Original patch from Bruce Dawson(brucedawson@chromium.org) R=bo_xu@foxitsoftware.com, tsepez@chromium.org Review URL: https://codereview.chromium.org/733693003 --- core/include/fxcrt/fx_string.h | 15 +++++++++++---- core/src/fpdfapi/fpdf_font/fpdf_font.cpp | 2 +- core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp | 6 +++--- core/src/fpdfdoc/doc_form.cpp | 2 +- core/src/fxcrt/fx_basic_bstring.cpp | 2 +- core/src/fxcrt/fx_basic_buffer.cpp | 2 +- core/src/fxcrt/fx_extension.cpp | 2 +- core/src/fxcrt/fx_xml_parser.cpp | 9 ++------- core/src/fxcrt/fxcrt_platforms.cpp | 2 +- fpdfsdk/include/javascript/JS_Define.h | 10 +++++----- fpdfsdk/src/fsdk_baseform.cpp | 12 ++++++------ fpdfsdk/src/javascript/Document.cpp | 4 ++-- fpdfsdk/src/javascript/Field.cpp | 10 +++++----- fpdfsdk/src/javascript/PublicMethods.cpp | 10 +++++----- fpdfsdk/src/javascript/app.cpp | 2 +- fpdfsdk/src/javascript/global.cpp | 2 +- 16 files changed, 47 insertions(+), 45 deletions(-) diff --git a/core/include/fxcrt/fx_string.h b/core/include/fxcrt/fx_string.h index 364c510f73..47e8ecdf1e 100644 --- a/core/include/fxcrt/fx_string.h +++ b/core/include/fxcrt/fx_string.h @@ -640,9 +640,16 @@ public: static FX_STRSIZE WStringLength(const unsigned short* str); + // Explicit conversion to raw string + FX_LPCWSTR c_str() const + { + return m_pData ? m_pData->m_String : L""; + } + + // Implicit conversion to C-style wide string -- deprecated operator FX_LPCWSTR() const { - return m_pData ? m_pData->m_String : (FX_WCHAR*)L""; + return m_pData ? m_pData->m_String : L""; } void Empty(); @@ -762,12 +769,12 @@ protected: }; inline CFX_WideStringC::CFX_WideStringC(const CFX_WideString& src) { - m_Ptr = (FX_LPCWSTR)src; + m_Ptr = src.c_str(); m_Length = src.GetLength(); } inline CFX_WideStringC& CFX_WideStringC::operator = (const CFX_WideString& src) { - m_Ptr = (FX_LPCWSTR)src; + m_Ptr = src.c_str(); m_Length = src.GetLength(); return *this; } @@ -841,6 +848,6 @@ inline CFX_ByteString FX_UTF8Encode(FX_WSTR wsStr) } inline CFX_ByteString FX_UTF8Encode(const CFX_WideString &wsStr) { - return FX_UTF8Encode((FX_LPCWSTR)wsStr, wsStr.GetLength()); + return FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()); } #endif diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp index 36b6ce2b5b..dd646ca113 100644 --- a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp +++ b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp @@ -228,7 +228,7 @@ CFX_ByteString CPDF_Font::EncodeString(const CFX_WideString& str) const CFX_ByteString result; int src_len = str.GetLength(); FX_LPSTR dest_buf = result.GetBuffer(src_len * 2); - FX_LPCWSTR src_buf = str; + FX_LPCWSTR src_buf = str.c_str(); int dest_pos = 0; for (int src_pos = 0; src_pos < src_len; src_pos ++) { FX_DWORD charcode = CharCodeFromUnicode(src_buf[src_pos]); diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp index dd4eeddc17..e431c6ad3c 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_fdf.cpp @@ -175,9 +175,9 @@ void FPDF_FileSpec_SetWin32Path(CPDF_Object* pFileSpec, const CFX_WideString& fi if (filepath[2] != '\\') { result += '/'; } - result += ChangeSlash((FX_LPCWSTR)filepath + 2); + result += ChangeSlash(filepath.c_str() + 2); } else if (filepath.GetLength() > 1 && filepath[0] == '\\' && filepath[1] == '\\') { - result = ChangeSlash((FX_LPCWSTR)filepath + 1); + result = ChangeSlash(filepath.c_str() + 1); } else { result = ChangeSlash(filepath); } @@ -217,7 +217,7 @@ CFX_WideString FPDF_FileSpec_GetWin32Path(const CPDF_Object* pFileSpec) CFX_WideString result; result += wsFileName[1]; result += ':'; - result += ChangeSlash(((FX_LPCWSTR)wsFileName) + 2); + result += ChangeSlash(wsFileName.c_str() + 2); return result; } else { CFX_WideString result; diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp index 821b9981b8..6b7e6bf2d6 100644 --- a/core/src/fpdfdoc/doc_form.cpp +++ b/core/src/fpdfdoc/doc_form.cpp @@ -161,7 +161,7 @@ CFieldTree::_Node *CFieldTree::_Lookup(_Node *pParent, const CFX_WideString &sho for (int i = 0; i < ptr_array.GetSize(); i ++) { _Node *pNode = (_Node *)ptr_array[i]; if (pNode->short_name.GetLength() == short_name.GetLength() && - FXSYS_memcmp32((FX_LPCWSTR)pNode->short_name, (FX_LPCWSTR)short_name, short_name.GetLength()*sizeof(FX_WCHAR)) == 0) { + FXSYS_memcmp32(pNode->short_name.c_str(), short_name.c_str(), short_name.GetLength()*sizeof(FX_WCHAR)) == 0) { return pNode; } } diff --git a/core/src/fxcrt/fx_basic_bstring.cpp b/core/src/fxcrt/fx_basic_bstring.cpp index 60153fa45a..c54148d799 100644 --- a/core/src/fxcrt/fx_basic_bstring.cpp +++ b/core/src/fxcrt/fx_basic_bstring.cpp @@ -971,7 +971,7 @@ CFX_ByteString CFX_ByteString::FromUnicode(FX_LPCWSTR str, FX_STRSIZE len) } CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) { - return FromUnicode((FX_LPCWSTR)str, str.GetLength()); + return FromUnicode(str.c_str(), str.GetLength()); } void CFX_ByteString::ConvertFrom(const CFX_WideString& str, CFX_CharMap* pCharMap) { diff --git a/core/src/fxcrt/fx_basic_buffer.cpp b/core/src/fxcrt/fx_basic_buffer.cpp index 1734423253..b208142d92 100644 --- a/core/src/fxcrt/fx_basic_buffer.cpp +++ b/core/src/fxcrt/fx_basic_buffer.cpp @@ -192,7 +192,7 @@ CFX_WideTextBuf& CFX_WideTextBuf::operator << (FX_WSTR str) } CFX_WideTextBuf& CFX_WideTextBuf::operator << (const CFX_WideString &str) { - AppendBlock((FX_LPCWSTR)str, str.GetLength() * sizeof(FX_WCHAR)); + AppendBlock(str.c_str(), str.GetLength() * sizeof(FX_WCHAR)); return *this; } CFX_WideTextBuf& CFX_WideTextBuf::operator << (int i) diff --git a/core/src/fxcrt/fx_extension.cpp b/core/src/fxcrt/fx_extension.cpp index 7ff6b062b4..6e82ab3d5c 100644 --- a/core/src/fxcrt/fx_extension.cpp +++ b/core/src/fxcrt/fx_extension.cpp @@ -146,7 +146,7 @@ FX_FLOAT FXSYS_strtof(FX_LPCSTR pcsStr, FX_INT32 iLength, FX_INT32 *pUsedLen) iLength = (FX_INT32)FXSYS_strlen(pcsStr); } CFX_WideString ws = CFX_WideString::FromLocal(pcsStr, iLength); - return FXSYS_wcstof((FX_LPCWSTR)ws, iLength, pUsedLen); + return FXSYS_wcstof(ws.c_str(), iLength, pUsedLen); } FX_FLOAT FXSYS_wcstof(FX_LPCWSTR pwsStr, FX_INT32 iLength, FX_INT32 *pUsedLen) { diff --git a/core/src/fxcrt/fx_xml_parser.cpp b/core/src/fxcrt/fx_xml_parser.cpp index 26c6540350..8049a5587e 100644 --- a/core/src/fxcrt/fx_xml_parser.cpp +++ b/core/src/fxcrt/fx_xml_parser.cpp @@ -670,18 +670,13 @@ FX_BOOL CXML_Element::GetAttrValue(FX_BSTR name, CFX_WideString& attribute) cons { CFX_ByteStringC bsSpace, bsName; FX_XML_SplitQualifiedName(name, bsSpace, bsName); - const CFX_WideString* pValue = m_AttrMap.Lookup(bsSpace, bsName); - if (pValue) { - attribute = CFX_WideString((FX_LPCWSTR)pValue, pValue->GetLength()); - return TRUE; - } - return FALSE; + return GetAttrValue(bsSpace, bsName, attribute); } FX_BOOL CXML_Element::GetAttrValue(FX_BSTR space, FX_BSTR name, CFX_WideString& attribute) const { const CFX_WideString* pValue = m_AttrMap.Lookup(space, name); if (pValue) { - attribute = CFX_WideString((FX_LPCWSTR)pValue, pValue->GetLength()); + attribute = *pValue; return TRUE; } return FALSE; diff --git a/core/src/fxcrt/fxcrt_platforms.cpp b/core/src/fxcrt/fxcrt_platforms.cpp index e14e362079..1c47ee6c9b 100644 --- a/core/src/fxcrt/fxcrt_platforms.cpp +++ b/core/src/fxcrt/fxcrt_platforms.cpp @@ -56,7 +56,7 @@ FX_BOOL CFXCRT_FileAccess_CRT::Open(FX_WSTR fileName, FX_DWORD dwMode) } CFX_WideString strMode; FXCRT_GetFileModeString(dwMode, strMode); - m_hFile = FXSYS_wfopen(fileName.GetPtr(), (FX_LPCWSTR)strMode); + m_hFile = FXSYS_wfopen(fileName.GetPtr(), strMode.c_str()); return m_hFile != NULL; } void CFXCRT_FileAccess_CRT::Close() diff --git a/fpdfsdk/include/javascript/JS_Define.h b/fpdfsdk/include/javascript/JS_Define.h index 62a8d1417e..379af0662a 100644 --- a/fpdfsdk/include/javascript/JS_Define.h +++ b/fpdfsdk/include/javascript/JS_Define.h @@ -341,8 +341,8 @@ const wchar_t * js_class_name::m_pClassName = JS_WIDESTRING(class_name);\ ASSERT(pObj != NULL);\ FX_BOOL bRet = FALSE;\ MEMLEAKCHECK_1();\ - bRet = pObj->QueryProperty((FX_LPCWSTR)propname);\ - MEMLEAKCHECK_2(class_name, (FX_LPCWSTR)prop_name);\ + bRet = pObj->QueryProperty(propname.c_str());\ + MEMLEAKCHECK_2(class_name, prop_name.c_str());\ if (bRet)\ {\ info.GetReturnValue().Set(0x004);\ @@ -376,7 +376,7 @@ const wchar_t * js_class_name::m_pClassName = JS_WIDESTRING(class_name);\ JS_ErrorString sError;\ FX_BOOL bRet = FALSE;\ MEMLEAKCHECK_1();\ - bRet = pObj->DoProperty(cc, (FX_LPCWSTR)propname, value, sError);\ + bRet = pObj->DoProperty(cc, propname.c_str(), value, sError);\ MEMLEAKCHECK_2(class_name, L"GetProperty");\ if (bRet)\ {\ @@ -414,7 +414,7 @@ const wchar_t * js_class_name::m_pClassName = JS_WIDESTRING(class_name);\ JS_ErrorString sError;\ FX_BOOL bRet = FALSE;\ MEMLEAKCHECK_1();\ - bRet = pObj->DoProperty(cc, (FX_LPCWSTR)propname, PropValue, sError);\ + bRet = pObj->DoProperty(cc, propname.c_str(), PropValue, sError);\ MEMLEAKCHECK_2(class_name,L"PutProperty");\ if (bRet)\ {\ @@ -449,7 +449,7 @@ const wchar_t * js_class_name::m_pClassName = JS_WIDESTRING(class_name);\ JS_ErrorString sError;\ FX_BOOL bRet = FALSE;\ MEMLEAKCHECK_1();\ - bRet = pObj->DelProperty(cc, (FX_LPCWSTR)propname, sError);\ + bRet = pObj->DelProperty(cc, propname.c_str(), sError);\ MEMLEAKCHECK_2(class_name,L"DelProperty");\ if (bRet)\ {\ diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp index aa87dd56bb..e73bd32913 100644 --- a/fpdfsdk/src/fsdk_baseform.cpp +++ b/fpdfsdk/src/fsdk_baseform.cpp @@ -1074,9 +1074,9 @@ void CPDFSDK_Widget::ResetAppearance_ComboBox(FX_LPCWSTR sValue) FX_INT32 nCurSel = pField->GetSelectedIndex(0); if (nCurSel < 0) - pEdit->SetText((FX_LPCWSTR)pField->GetValue()); + pEdit->SetText(pField->GetValue().c_str()); else - pEdit->SetText((FX_LPCWSTR)pField->GetOptionLabel(nCurSel)); + pEdit->SetText(pField->GetOptionLabel(nCurSel).c_str()); } CPDF_Rect rcContent = pEdit->GetContentRect(); @@ -1161,7 +1161,7 @@ void CPDFSDK_Widget::ResetAppearance_ListBox() } } - pEdit->SetText((FX_LPCWSTR)pField->GetOptionLabel(i)); + pEdit->SetText(pField->GetOptionLabel(i).c_str()); CPDF_Rect rcContent = pEdit->GetContentRect(); FX_FLOAT fItemHeight = rcContent.Height(); @@ -1280,7 +1280,7 @@ void CPDFSDK_Widget::ResetAppearance_TextField(FX_LPCWSTR sValue) if (sValue) pEdit->SetText(sValue); else - pEdit->SetText((FX_LPCWSTR)pField->GetValue()); + pEdit->SetText(pField->GetValue().c_str()); CPDF_Rect rcContent = pEdit->GetContentRect(); @@ -2282,7 +2282,7 @@ FX_BOOL CPDFSDK_InterForm::SubmitFields(const CFX_WideString& csDestination, con return FALSE; } - pEnv->JS_docSubmitForm(pBuffer, nBufSize, (FX_LPCWSTR)csDestination); + pEnv->JS_docSubmitForm(pBuffer, nBufSize, csDestination.c_str()); return TRUE; } @@ -2433,7 +2433,7 @@ FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, FX_BOO return FALSE; } - pEnv->JS_docSubmitForm(pBuffer, nBufSize, (FX_LPCWSTR)sDestination); + pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); if (bUrlEncoded && pBuffer) { diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp index 933ba29f68..c10f937f5d 100644 --- a/fpdfsdk/src/javascript/Document.cpp +++ b/fpdfsdk/src/javascript/Document.cpp @@ -605,7 +605,7 @@ FX_BOOL Document::mailForm(OBJ_METHOD_PARAMS) ASSERT(pRuntime != NULL); pRuntime->BeginBlock(); - pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, (FX_LPCWSTR)cTo, (FX_LPCWSTR)cSubject, (FX_LPCWSTR)cCc, (FX_LPCWSTR)cBcc, (FX_LPCWSTR)cMsg); + pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); pRuntime->EndBlock(); return TRUE; } @@ -999,7 +999,7 @@ FX_BOOL Document::mailDoc(OBJ_METHOD_PARAMS) pRuntime->BeginBlock(); CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp(); - pEnv->JS_docmailForm(NULL, 0, bUI, (FX_LPCWSTR)cTo, (FX_LPCWSTR)cSubject, (FX_LPCWSTR)cCc, (FX_LPCWSTR)cBcc, (FX_LPCWSTR)cMsg); + pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); pRuntime->EndBlock(); return TRUE; diff --git a/fpdfsdk/src/javascript/Field.cpp b/fpdfsdk/src/javascript/Field.cpp index a84599298e..7a9f9a0a14 100644 --- a/fpdfsdk/src/javascript/Field.cpp +++ b/fpdfsdk/src/javascript/Field.cpp @@ -194,7 +194,7 @@ FX_BOOL Field::AttachField(Document* pDocument, const CFX_WideString& csFieldNam { std::wstring strFieldName; int iControlNo = -1; - ParseFieldName((FX_LPCWSTR)swFieldNameTemp, strFieldName, iControlNo); + ParseFieldName(swFieldNameTemp.c_str(), strFieldName, iControlNo); if (iControlNo == -1) return FALSE; m_FieldName = strFieldName.c_str(); @@ -1573,7 +1573,7 @@ FX_BOOL Field::exportValues(OBJ_PROP_PARAMS) CPDF_FormControl* pFormControl = pFormField->GetControl(i); ASSERT(pFormControl != NULL); - ExportValusArray.SetElement(i, CJS_Value(m_isolate,(FX_LPCWSTR)pFormControl->GetExportValue())); + ExportValusArray.SetElement(i, CJS_Value(m_isolate,pFormControl->GetExportValue().c_str())); } } else @@ -1582,7 +1582,7 @@ FX_BOOL Field::exportValues(OBJ_PROP_PARAMS) CPDF_FormControl* pFormControl = pFormField->GetControl(m_nFormControlIndex); if (!pFormControl) return FALSE; - ExportValusArray.SetElement(0, CJS_Value(m_isolate,(FX_LPCWSTR)pFormControl->GetExportValue())); + ExportValusArray.SetElement(0, CJS_Value(m_isolate,pFormControl->GetExportValue().c_str())); } vp << ExportValusArray; @@ -3322,7 +3322,7 @@ FX_BOOL Field::valueAsString(OBJ_PROP_PARAMS) { if (pFormField->GetControl(i)->IsChecked()) { - vp << (FX_LPCWSTR)pFormField->GetControl(i)->GetExportValue(); + vp << pFormField->GetControl(i)->GetExportValue().c_str(); break; } else @@ -3334,7 +3334,7 @@ FX_BOOL Field::valueAsString(OBJ_PROP_PARAMS) vp << L""; } else - vp << (FX_LPCWSTR)pFormField->GetValue(); + vp << pFormField->GetValue().c_str(); return TRUE; } diff --git a/fpdfsdk/src/javascript/PublicMethods.cpp b/fpdfsdk/src/javascript/PublicMethods.cpp index 4c51c9ae25..82bffe67bf 100644 --- a/fpdfsdk/src/javascript/PublicMethods.cpp +++ b/fpdfsdk/src/javascript/PublicMethods.cpp @@ -1554,7 +1554,7 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(OBJ_METHOD_PARAMS) if (JS_PortIsNan(dDate)) { CFX_WideString swMsg; - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), (FX_LPCWSTR)sFormat); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str()); Alert(pContext, swMsg); return FALSE; } @@ -1652,7 +1652,7 @@ FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(OBJ_METHOD_PARAMS) if (bWrongFormat || JS_PortIsNan(dRet)) { CFX_WideString swMsg; - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), (FX_LPCWSTR)sFormat); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str()); Alert(pContext, swMsg); pEvent->Rc() = FALSE; return TRUE; @@ -2059,7 +2059,7 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(OBJ_METHOD_PARAMS) if (JS_PortIsNan(dDate)) { CFX_WideString swMsg; - swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), (FX_LPCWSTR)sFormat); + swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE), sFormat.c_str()); Alert((CJS_Context *)cc, swMsg); return FALSE; } @@ -2304,7 +2304,7 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(OBJ_METHOD_PARAMS) { if (sPart.GetLength() > 0) { - nums.SetElement(nIndex,CJS_Value(isolate,(FX_LPCWSTR)sPart)); + nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str())); sPart = L""; nIndex ++; } @@ -2313,7 +2313,7 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(OBJ_METHOD_PARAMS) if (sPart.GetLength() > 0) { - nums.SetElement(nIndex,CJS_Value(isolate,(FX_LPCWSTR)sPart)); + nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str())); } if (nums.GetLength() > 0) diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp index abba6ed15b..ebd68958b2 100644 --- a/fpdfsdk/src/javascript/app.cpp +++ b/fpdfsdk/src/javascript/app.cpp @@ -813,7 +813,7 @@ FX_BOOL app::mailMsg(OBJ_METHOD_PARAMS) ASSERT(pApp != NULL); pRuntime->BeginBlock(); - pApp->JS_docmailForm(NULL, 0, bUI, (FX_LPCWSTR)cTo, (FX_LPCWSTR)cSubject, (FX_LPCWSTR)cCc, (FX_LPCWSTR)cBcc, (FX_LPCWSTR)cMsg); + pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); /////////////////////////////////////////////////////////////////////////////////////////////// pRuntime->EndBlock(); diff --git a/fpdfsdk/src/javascript/global.cpp b/fpdfsdk/src/javascript/global.cpp index 03bdd5b575..1d61571c8b 100644 --- a/fpdfsdk/src/javascript/global.cpp +++ b/fpdfsdk/src/javascript/global.cpp @@ -341,7 +341,7 @@ void global_alternate::ObjectToArray(v8::Handle pObj, CJS_GlobalVari CFX_WideString ws = JS_ToString(JS_GetArrayElemnet(pKeyList, i)); CFX_ByteString sKey = ws.UTF8Encode(); - v8::Handle v = JS_GetObjectElement(isolate, pObj, (FX_LPCWSTR)ws); + v8::Handle v = JS_GetObjectElement(isolate, pObj, ws.c_str()); FXJSVALUETYPE vt = GET_VALUE_TYPE(v); switch (vt) { -- cgit v1.2.3