summaryrefslogtreecommitdiff
path: root/fpdfsdk/cpdfsdk_interform.cpp
diff options
context:
space:
mode:
authortsepez <tsepez@chromium.org>2017-01-11 09:32:33 -0800
committerCommit bot <commit-bot@chromium.org>2017-01-11 09:32:33 -0800
commit8fa82794ffc2763e9fa1fc9d401c8e9a14d7c67f (patch)
tree724f69ba295176752df1040e4fb770f69c8dda93 /fpdfsdk/cpdfsdk_interform.cpp
parent76a44dea318041f8229d80e70ca3568a435611eb (diff)
downloadpdfium-8fa82794ffc2763e9fa1fc9d401c8e9a14d7c67f.tar.xz
Annotation deleted while retrieving it in JS
Widgets as returned from GetWidgets() can pop out of existence unexpectedly, so always return observed pointers. This extends the same pattern used elsewhere in the file to all occurrences. BUG=679642 Review-Url: https://codereview.chromium.org/2624933002
Diffstat (limited to 'fpdfsdk/cpdfsdk_interform.cpp')
-rw-r--r--fpdfsdk/cpdfsdk_interform.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index a2f07b488f..7b7718030b 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -117,7 +117,7 @@ CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl) const {
void CPDFSDK_InterForm::GetWidgets(
const CFX_WideString& sFieldName,
- std::vector<CPDFSDK_Widget*>* widgets) const {
+ std::vector<CPDFSDK_Annot::ObservedPtr>* widgets) const {
for (int i = 0, sz = m_pInterForm->CountFields(sFieldName); i < sz; ++i) {
CPDF_FormField* pFormField = m_pInterForm->GetField(i, sFieldName);
ASSERT(pFormField);
@@ -127,13 +127,13 @@ void CPDFSDK_InterForm::GetWidgets(
void CPDFSDK_InterForm::GetWidgets(
CPDF_FormField* pField,
- std::vector<CPDFSDK_Widget*>* widgets) const {
+ std::vector<CPDFSDK_Annot::ObservedPtr>* widgets) const {
for (int i = 0, sz = pField->CountControls(); i < sz; ++i) {
CPDF_FormControl* pFormCtrl = pField->GetControl(i);
ASSERT(pFormCtrl);
CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl);
if (pWidget)
- widgets->push_back(pWidget);
+ widgets->emplace_back(pWidget);
}
}