| Index: core/fpdfdoc/doc_formfield.cpp
|
| diff --git a/core/fpdfdoc/doc_formfield.cpp b/core/fpdfdoc/doc_formfield.cpp
|
| index 84d9a52dac868d2b01bd6178a439af84a21601fe..9849fa1e35bd1632a14a48ad6cb7f63153878a49 100644
|
| --- a/core/fpdfdoc/doc_formfield.cpp
|
| +++ b/core/fpdfdoc/doc_formfield.cpp
|
| @@ -893,56 +893,37 @@ FX_BOOL CPDF_FormField::SetCheckValue(const CFX_WideString& value,
|
|
|
| int CPDF_FormField::GetTopVisibleIndex() {
|
| CPDF_Object* pObj = FPDF_GetFieldAttr(m_pDict, "TI");
|
| - if (!pObj) {
|
| - return 0;
|
| - }
|
| - return pObj->GetInteger();
|
| + return pObj ? pObj->GetInteger() : 0;
|
| }
|
|
|
| int CPDF_FormField::CountSelectedOptions() {
|
| - CPDF_Object* pObj = FPDF_GetFieldAttr(m_pDict, "I");
|
| - if (!pObj) {
|
| - return 0;
|
| - }
|
| - CPDF_Array* pArray = pObj->GetArray();
|
| - if (!pArray) {
|
| - return 0;
|
| - }
|
| - return static_cast<int>(pArray->GetCount());
|
| + CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "I"));
|
| + return pArray ? pArray->GetCount() : 0;
|
| }
|
|
|
| int CPDF_FormField::GetSelectedOptionIndex(int index) {
|
| - CPDF_Object* pObj = FPDF_GetFieldAttr(m_pDict, "I");
|
| - if (!pObj) {
|
| + CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "I"));
|
| + if (!pArray)
|
| return -1;
|
| - }
|
| - CPDF_Array* pArray = pObj->GetArray();
|
| - if (!pArray) {
|
| +
|
| + int iCount = pArray->GetCount();
|
| + if (iCount < 0 || index >= iCount)
|
| return -1;
|
| - }
|
| - int iCount = static_cast<int>(pArray->GetCount());
|
| - if (iCount > 0 && index < iCount) {
|
| - return pArray->GetIntegerAt(index);
|
| - }
|
| - return -1;
|
| + return pArray->GetIntegerAt(index);
|
| }
|
| +
|
| FX_BOOL CPDF_FormField::IsOptionSelected(int iOptIndex) {
|
| - CPDF_Object* pObj = FPDF_GetFieldAttr(m_pDict, "I");
|
| - if (!pObj) {
|
| - return FALSE;
|
| - }
|
| - CPDF_Array* pArray = pObj->GetArray();
|
| - if (!pArray) {
|
| + CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "I"));
|
| + if (!pArray)
|
| return FALSE;
|
| - }
|
| - size_t iCount = pArray->GetCount();
|
| - for (size_t i = 0; i < iCount; i++) {
|
| - if (pArray->GetIntegerAt(i) == iOptIndex) {
|
| +
|
| + for (CPDF_Object* pObj : *pArray) {
|
| + if (pObj->GetInteger() == iOptIndex)
|
| return TRUE;
|
| - }
|
| }
|
| return FALSE;
|
| }
|
| +
|
| FX_BOOL CPDF_FormField::SelectOption(int iOptIndex,
|
| FX_BOOL bSelected,
|
| FX_BOOL bNotify) {
|
|
|