| Index: core/fpdfdoc/cpdf_formfield.cpp
 | 
| diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
 | 
| index 4999f2d6b861fb5b4d08508e229f7e9efdf2795d..3a2213f1aee4786647660cdcedbf3fa0cb27e81e 100644
 | 
| --- a/core/fpdfdoc/cpdf_formfield.cpp
 | 
| +++ b/core/fpdfdoc/cpdf_formfield.cpp
 | 
| @@ -555,7 +555,7 @@ bool CPDF_FormField::SetItemSelection(int index, bool bSelected, bool bNotify) {
 | 
|          for (int i = 0; i < CountOptions(); i++) {
 | 
|            if (i == index || IsItemSelected(i)) {
 | 
|              opt_value = GetOptionValue(i);
 | 
| -            pArray->AddString(PDF_EncodeText(opt_value));
 | 
| +            pArray->AddNew<CPDF_String>(PDF_EncodeText(opt_value), false);
 | 
|            }
 | 
|          }
 | 
|          m_pDict->SetFor("V", pArray);
 | 
| @@ -563,7 +563,7 @@ bool CPDF_FormField::SetItemSelection(int index, bool bSelected, bool bNotify) {
 | 
|      } else {
 | 
|        m_pDict->SetStringFor("V", PDF_EncodeText(opt_value));
 | 
|        CPDF_Array* pI = new CPDF_Array;
 | 
| -      pI->AddInteger(index);
 | 
| +      pI->AddNew<CPDF_Number>(index);
 | 
|        m_pDict->SetFor("I", pI);
 | 
|      }
 | 
|    } else {
 | 
| @@ -579,7 +579,7 @@ bool CPDF_FormField::SetItemSelection(int index, bool bSelected, bool bNotify) {
 | 
|            for (int i = 0; i < CountOptions(); i++) {
 | 
|              if (i != index && IsItemSelected(i)) {
 | 
|                opt_value = GetOptionValue(i);
 | 
| -              pArray->AddString(PDF_EncodeText(opt_value));
 | 
| +              pArray->AddNew<CPDF_String>(PDF_EncodeText(opt_value), false);
 | 
|              }
 | 
|            }
 | 
|            if (pArray->GetCount() > 0)
 | 
| @@ -684,11 +684,10 @@ int CPDF_FormField::InsertOption(CFX_WideString csOptLabel,
 | 
|  
 | 
|    int iCount = pdfium::base::checked_cast<int>(pOpt->GetCount());
 | 
|    if (index >= iCount) {
 | 
| -    pOpt->AddString(csStr);
 | 
| +    pOpt->AddNew<CPDF_String>(csStr, false);
 | 
|      index = iCount;
 | 
|    } else {
 | 
| -    CPDF_String* pString = new CPDF_String(csStr, false);
 | 
| -    pOpt->InsertAt(index, pString);
 | 
| +    pOpt->InsertNewAt<CPDF_String>(index, csStr, false);
 | 
|    }
 | 
|  
 | 
|    if (bNotify)
 | 
| @@ -836,7 +835,7 @@ bool CPDF_FormField::IsOptionSelected(int iOptIndex) const {
 | 
|    if (!pArray)
 | 
|      return false;
 | 
|  
 | 
| -  for (CPDF_Object* pObj : *pArray) {
 | 
| +  for (const auto& pObj : *pArray) {
 | 
|      if (pObj->GetInteger() == iOptIndex)
 | 
|        return true;
 | 
|    }
 | 
| @@ -879,14 +878,14 @@ bool CPDF_FormField::SelectOption(int iOptIndex, bool bSelected, bool bNotify) {
 | 
|          if (!NotifyListOrComboBoxBeforeChange(csValue))
 | 
|            return false;
 | 
|        }
 | 
| -      pArray->InsertAt(i, new CPDF_Number(iOptIndex));
 | 
| +      pArray->InsertNewAt<CPDF_Number>(i, iOptIndex);
 | 
|        bReturn = true;
 | 
|        break;
 | 
|      }
 | 
|    }
 | 
|    if (!bReturn) {
 | 
|      if (bSelected)
 | 
| -      pArray->AddInteger(iOptIndex);
 | 
| +      pArray->AddNew<CPDF_Number>(iOptIndex);
 | 
|  
 | 
|      if (pArray->IsEmpty())
 | 
|        m_pDict->RemoveFor("I");
 | 
| 
 |