Chromium Code Reviews| Index: fpdfsdk/src/javascript/Field.cpp |
| diff --git a/fpdfsdk/src/javascript/Field.cpp b/fpdfsdk/src/javascript/Field.cpp |
| index d97001aae2690a10868002dbbcb145b9ef13140f..fd0dfe9db1d5097562f95bd8d78b09dee1d7c6f3 100644 |
| --- a/fpdfsdk/src/javascript/Field.cpp |
| +++ b/fpdfsdk/src/javascript/Field.cpp |
| @@ -3083,10 +3083,6 @@ FX_BOOL Field::deleteItemAt(IJS_Context* cc, |
| return TRUE; |
| } |
| -int JS_COMPARESTRING(CFX_WideString* ps1, CFX_WideString* ps2) { |
| - return ps1->Compare(*ps2); |
| -} |
| - |
| FX_BOOL Field::getArray(IJS_Context* cc, |
| const std::vector<CJS_Value>& params, |
| CJS_Value& vRet, |
| @@ -3095,35 +3091,38 @@ FX_BOOL Field::getArray(IJS_Context* cc, |
| if (FieldArray.empty()) |
| return FALSE; |
| - CGW_ArrayTemplate<CFX_WideString*> swSort; |
| + std::vector<std::unique_ptr<CFX_WideString>> swSort; |
|
Lei Zhang
2016/02/01 19:12:55
#include <vector>, <memory> and <algorithm>
Tom Sepez
2016/02/01 20:14:23
Done.
|
| + for (CPDF_FormField* pFormField : FieldArray) { |
| + swSort.push_back(std::unique_ptr<CFX_WideString>( |
| + new CFX_WideString(pFormField->GetFullName()))); |
| + } |
| - for (CPDF_FormField* pFormField : FieldArray) |
| - swSort.Add(new CFX_WideString(pFormField->GetFullName())); |
| - swSort.Sort(JS_COMPARESTRING); |
| + std::sort( |
| + swSort.begin(), swSort.end(), |
| + [](const std::unique_ptr<CFX_WideString>& p1, |
| + const std::unique_ptr<CFX_WideString>& p2) { return *p1 < *p2; }); |
| CJS_Context* pContext = (CJS_Context*)cc; |
| CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| - ASSERT(pRuntime); |
| - |
| CJS_Array FormFieldArray(pRuntime); |
| - for (int j = 0, jsz = swSort.GetSize(); j < jsz; j++) { |
| - std::unique_ptr<CFX_WideString> pStr(swSort.GetAt(j)); |
| + |
| + int j = 0; |
| + for (const auto& pStr : swSort) { |
| v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( |
| pRuntime->GetIsolate(), pRuntime, CJS_Field::g_nObjDefnID); |
| ASSERT(!pObj.IsEmpty()); |
| CJS_Field* pJSField = |
| - (CJS_Field*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj); |
| - Field* pField = (Field*)pJSField->GetEmbedObject(); |
| + static_cast<CJS_Field*>(FXJS_GetPrivate(pRuntime->GetIsolate(), pObj)); |
| + Field* pField = static_cast<Field*>(pJSField->GetEmbedObject()); |
| pField->AttachField(m_pJSDoc, *pStr); |
| CJS_Value FormFieldValue(pRuntime); |
| FormFieldValue = pJSField; |
| - FormFieldArray.SetElement(j, FormFieldValue); |
| + FormFieldArray.SetElement(j++, FormFieldValue); |
| } |
| vRet = FormFieldArray; |
| - swSort.RemoveAll(); |
| return TRUE; |
| } |