Fix assert failure in CPDF_InteractiveForm::GetControlsForField().
|CPDF_InteractiveForm::m_ControlLists| replaced
|CPDF_FormField::m_ControlList| for all CPDF_FormFields. So when any
CPDF_FormFields wants to know about its control list, it has to ask
CPDF_InteractiveForm. Every CPDF_FormField started out with an empty
control list, so CPDF_InteractiveForm should keep that behavior.
BUG=chromium:895983
TBR=tsepez@chromium.org
Change-Id: Ibae5f6f54a21b9576b253e230c346bfd6705ca5d
Reviewed-on: https://pdfium-review.googlesource.com/c/44150
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp
index 754737c..403344c 100644
--- a/core/fpdfdoc/cpdf_interactiveform.cpp
+++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -827,10 +827,8 @@
}
const std::vector<UnownedPtr<CPDF_FormControl>>&
-CPDF_InteractiveForm::GetControlsForField(const CPDF_FormField* pField) const {
- const auto& it = m_ControlLists.find(pField);
- ASSERT(it != m_ControlLists.end());
- return it->second;
+CPDF_InteractiveForm::GetControlsForField(const CPDF_FormField* pField) {
+ return m_ControlLists[pField];
}
void CPDF_InteractiveForm::LoadField(CPDF_Dictionary* pFieldDict, int nLevel) {
diff --git a/core/fpdfdoc/cpdf_interactiveform.h b/core/fpdfdoc/cpdf_interactiveform.h
index 7a89320..49335e9 100644
--- a/core/fpdfdoc/cpdf_interactiveform.h
+++ b/core/fpdfdoc/cpdf_interactiveform.h
@@ -92,7 +92,7 @@
CPDF_Dictionary* GetFormDict() const { return m_pFormDict.Get(); }
const std::vector<UnownedPtr<CPDF_FormControl>>& GetControlsForField(
- const CPDF_FormField* pField) const;
+ const CPDF_FormField* pField);
private:
void LoadField(CPDF_Dictionary* pFieldDict, int nLevel);