Pass several required fields to CreateParam constructor. Makes it more obvious when these required fields are being omitted. Change-Id: I571b037d30426ce9622a6bad906bc9b3b1708c3e Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/93550 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp index 88979e5..b2fa82b 100644 --- a/fpdfsdk/cpdfsdk_appstream.cpp +++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -692,15 +692,14 @@ if (rcIcon.IsEmpty() || !pIconStream) return ByteString(); - auto pPDFIcon = std::make_unique<CPDF_Icon>(pIconStream); - - CPWL_Wnd::CreateParams cp; + CPWL_Wnd::CreateParams cp(nullptr, nullptr, nullptr); cp.dwFlags = PWS_VISIBLE; auto pWnd = std::make_unique<CPWL_Wnd>(cp, nullptr); pWnd->Realize(); if (!pWnd->Move(rcIcon, false, false)) return ByteString(); + auto pPDFIcon = std::make_unique<CPDF_Icon>(pIconStream); ByteString sAlias = pPDFIcon->GetImageAlias(); if (sAlias.GetLength() <= 0) return ByteString();
diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp index c8efaf9..aeeec61 100644 --- a/fpdfsdk/formfiller/cffl_formfield.cpp +++ b/fpdfsdk/formfiller/cffl_formfield.cpp
@@ -297,8 +297,10 @@ } CPWL_Wnd::CreateParams CFFL_FormField::GetCreateParam() { - CPWL_Wnd::CreateParams cp; - cp.pProvider.Reset(this); + CPWL_Wnd::CreateParams cp( + m_pFormFiller->GetCallbackIface()->GetTimerHandler(), + m_pFormFiller->GetCallbackIface()->GetSysHandler(), this); + cp.rcRectWnd = GetPDFAnnotRect(); uint32_t dwCreateFlags = PWS_BORDER | PWS_BACKGROUND | PWS_VISIBLE; @@ -339,8 +341,6 @@ dwCreateFlags |= PWS_AUTOFONTSIZE; cp.dwFlags = dwCreateFlags; - cp.pTimerHandler.Reset(m_pFormFiller->GetCallbackIface()->GetTimerHandler()); - cp.pSystemHandler = m_pFormFiller->GetCallbackIface()->GetSysHandler(); return cp; }
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp index 88ce67a..ad0d9d2 100644 --- a/fpdfsdk/pwl/cpwl_wnd.cpp +++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -33,8 +33,14 @@ const CFX_Color CPWL_Wnd::kDefaultWhiteColor = CFX_Color(CFX_Color::Type::kGray, 1); -CPWL_Wnd::CreateParams::CreateParams() - : fFontSize(kDefaultFontSize), sDash(3, 0, 0) {} +CPWL_Wnd::CreateParams::CreateParams(CFX_Timer::HandlerIface* timer_handler, + IPWL_SystemHandler* system_handler, + ProviderIface* provider) + : pTimerHandler(timer_handler), + pSystemHandler(system_handler), + pProvider(provider), + fFontSize(kDefaultFontSize), + sDash(3, 0, 0) {} CPWL_Wnd::CreateParams::CreateParams(const CreateParams& other) = default;
diff --git a/fpdfsdk/pwl/cpwl_wnd.h b/fpdfsdk/pwl/cpwl_wnd.h index 2be98fc..de9a132 100644 --- a/fpdfsdk/pwl/cpwl_wnd.h +++ b/fpdfsdk/pwl/cpwl_wnd.h
@@ -97,14 +97,16 @@ // Caller-provided options for window creation. class CreateParams { public: - CreateParams(); + CreateParams(CFX_Timer::HandlerIface* timer_handler, + IPWL_SystemHandler* system_handler, + ProviderIface* provider); CreateParams(const CreateParams& other); ~CreateParams(); // Required: CFX_FloatRect rcRectWnd; - ObservedPtr<CFX_Timer::HandlerIface> pTimerHandler; - UnownedPtr<IPWL_SystemHandler> pSystemHandler; + ObservedPtr<CFX_Timer::HandlerIface> const pTimerHandler; + UnownedPtr<IPWL_SystemHandler> const pSystemHandler; UnownedPtr<IPVT_FontMap> pFontMap; ObservedPtr<ProviderIface> pProvider;