From 8798cf226fe30417d387680a23b557bba35361b0 Mon Sep 17 00:00:00 2001 From: zhangxin11112342 Date: Fri, 28 Jun 2024 16:27:45 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20aa9954b=20from=20https://gitee.com/zhan?= =?UTF-8?q?gxin11112342/chromium=5Fthird=5Fparty=5Fpdfium/pulls/10=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DCVE-2024-5847?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangxin11112342 --- fpdfsdk/cpdfsdk_formfillenvironment.cpp | 31 +++++++++++++------------ fpdfsdk/cpdfsdk_pageview.cpp | 2 +- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp index 84df6e1..0404481 100644 --- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp +++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp @@ -399,20 +399,20 @@ void CPDFSDK_FormFillEnvironment::OnSetFieldInputFocusInternal( void CPDFSDK_FormFillEnvironment::OnCalculate( ObservedPtr& pAnnot) { - CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot.Get()); - if (pWidget) + ObservedPtr pWidget(ToCPDFSDKWidget(pAnnot.Get())); + if (pWidget) { m_pInteractiveForm->OnCalculate(pWidget->GetFormField()); + } } void CPDFSDK_FormFillEnvironment::OnFormat(ObservedPtr& pAnnot) { - CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot.Get()); - DCHECK(pWidget); + ObservedPtr pWidget(ToCPDFSDKWidget(pAnnot.Get())); absl::optional sValue = m_pInteractiveForm->OnFormat(pWidget->GetFormField()); - if (!pAnnot) + if (!pWidget) { return; - + } if (sValue.has_value()) { m_pInteractiveForm->ResetFieldAppearance(pWidget->GetFormField(), sValue); m_pInteractiveForm->UpdateField(pWidget->GetFormField()); @@ -756,12 +756,13 @@ bool CPDFSDK_FormFillEnvironment::SetFocusAnnot( return false; #endif // PDF_ENABLE_XFA - if (!CPDFSDK_Annot::OnSetFocus(pAnnot, {})) + if (!CPDFSDK_Annot::OnSetFocus(pAnnot, {})) { return false; - if (m_pFocusAnnot) + } + if (m_pFocusAnnot) { return false; - - m_pFocusAnnot.Reset(pAnnot.Get()); + } + m_pFocusAnnot = pAnnot; // If we are not able to inform the client about the focus change, it // shouldn't be considered as failure. @@ -777,7 +778,7 @@ bool CPDFSDK_FormFillEnvironment::KillFocusAnnot(Mask nFlags) { m_pFocusAnnot.Reset(); if (!CPDFSDK_Annot::OnKillFocus(pFocusAnnot, nFlags)) { - m_pFocusAnnot.Reset(pFocusAnnot.Get()); + m_pFocusAnnot = pFocusAnnot; return false; } @@ -786,10 +787,10 @@ bool CPDFSDK_FormFillEnvironment::KillFocusAnnot(Mask nFlags) { return false; if (pFocusAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET) { - CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pFocusAnnot.Get()); - FormFieldType fieldType = pWidget->GetFieldType(); - if (fieldType == FormFieldType::kTextField || - fieldType == FormFieldType::kComboBox) { + const FormFieldType field_type = + ToCPDFSDKWidget(pFocusAnnot.Get())->GetFieldType(); + if (field_type == FormFieldType::kTextField || + field_type == FormFieldType::kComboBox) { OnSetFieldInputFocusInternal(WideString(), false); } } diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp index 1bbaeeb..9504734 100644 --- a/fpdfsdk/cpdfsdk_pageview.cpp +++ b/fpdfsdk/cpdfsdk_pageview.cpp @@ -446,7 +446,7 @@ bool CPDFSDK_PageView::OnMouseMove(Mask nFlags, void CPDFSDK_PageView::EnterWidget(ObservedPtr& pAnnot, Mask nFlags) { m_bOnWidget = true; - m_pCaptureWidget.Reset(pAnnot.Get()); + m_pCaptureWidget = pAnnot; CPDFSDK_Annot::OnMouseEnter(m_pCaptureWidget, nFlags); } -- Gitee