summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/fpdfsave.cpp8
-rw-r--r--fpdfsdk/fpdfview.cpp18
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp11
3 files changed, 17 insertions, 20 deletions
diff --git a/fpdfsdk/fpdfsave.cpp b/fpdfsdk/fpdfsave.cpp
index 8e92579518..638c22be26 100644
--- a/fpdfsdk/fpdfsave.cpp
+++ b/fpdfsdk/fpdfsave.cpp
@@ -240,8 +240,8 @@ bool SendPostSaveToXFADoc(CPDFXFA_Context* pContext) {
return false;
CXFA_FFWidgetHandler* pWidgetHander = pXFADocView->GetWidgetHandler();
- std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator(
- pXFADocView->CreateWidgetAccIterator());
+ std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator =
+ pXFADocView->CreateWidgetAccIterator();
while (CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext()) {
CXFA_EventParam preParam;
preParam.m_eType = XFA_EVENT_PostSave;
@@ -264,8 +264,8 @@ bool SendPreSaveToXFADoc(
return true;
CXFA_FFWidgetHandler* pWidgetHander = pXFADocView->GetWidgetHandler();
- std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator(
- pXFADocView->CreateWidgetAccIterator());
+ std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator =
+ pXFADocView->CreateWidgetAccIterator();
while (CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext()) {
CXFA_EventParam preParam;
preParam.m_eType = XFA_EVENT_PreSave;
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index c928ebe445..72ef75ce07 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -140,9 +140,8 @@ void RenderPageImpl(CPDF_PageRenderContext* pContext,
class CPDF_CustomAccess final : public IFX_SeekableReadStream {
public:
- static CFX_RetainPtr<CPDF_CustomAccess> Create(FPDF_FILEACCESS* pFileAccess) {
- return CFX_RetainPtr<CPDF_CustomAccess>(new CPDF_CustomAccess(pFileAccess));
- }
+ template <typename T, typename... Args>
+ friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
// IFX_SeekableReadStream
FX_FILESIZE GetSize() override;
@@ -180,9 +179,9 @@ bool CPDF_CustomAccess::ReadBlock(void* buffer,
#ifdef PDF_ENABLE_XFA
class CFPDF_FileStream : public IFX_SeekableStream {
public:
- static CFX_RetainPtr<CFPDF_FileStream> Create(FPDF_FILEHANDLER* pFS) {
- return CFX_RetainPtr<CFPDF_FileStream>(new CFPDF_FileStream(pFS));
- }
+ template <typename T, typename... Args>
+ friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
+
~CFPDF_FileStream() override;
// IFX_SeekableStream:
@@ -328,13 +327,13 @@ CFX_DIBitmap* CFXBitmapFromFPDFBitmap(FPDF_BITMAP bitmap) {
CFX_RetainPtr<IFX_SeekableReadStream> MakeSeekableReadStream(
FPDF_FILEACCESS* pFileAccess) {
- return CPDF_CustomAccess::Create(pFileAccess);
+ return pdfium::MakeRetain<CPDF_CustomAccess>(pFileAccess);
}
#ifdef PDF_ENABLE_XFA
CFX_RetainPtr<IFX_SeekableStream> MakeSeekableStream(
FPDF_FILEHANDLER* pFilehandler) {
- return CFPDF_FileStream::Create(pFilehandler);
+ return pdfium::MakeRetain<CFPDF_FileStream>(pFilehandler);
}
#endif // PDF_ENABLE_XFA
@@ -594,8 +593,7 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf,
DLLEXPORT FPDF_DOCUMENT STDCALL
FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess,
FPDF_BYTESTRING password) {
- CFX_RetainPtr<CPDF_CustomAccess> pFile =
- CPDF_CustomAccess::Create(pFileAccess);
+ auto pFile = pdfium::MakeRetain<CPDF_CustomAccess>(pFileAccess);
auto pParser = pdfium::MakeUnique<CPDF_Parser>();
pParser->SetPassword(password);
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index bd16f43ffc..4464f1c43a 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -624,8 +624,8 @@ bool CPDFXFA_DocEnvironment::OnBeforeNotifySubmit() {
if (!pWidgetHandler)
return true;
- std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator(
- m_pContext->GetXFADocView()->CreateWidgetAccIterator());
+ std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator =
+ m_pContext->GetXFADocView()->CreateWidgetAccIterator();
if (pWidgetAccIterator) {
CXFA_EventParam Param;
Param.m_eType = XFA_EVENT_PreSubmit;
@@ -633,8 +633,7 @@ bool CPDFXFA_DocEnvironment::OnBeforeNotifySubmit() {
pWidgetHandler->ProcessEvent(pWidgetAcc, &Param);
}
- pWidgetAccIterator.reset(
- m_pContext->GetXFADocView()->CreateWidgetAccIterator());
+ pWidgetAccIterator = m_pContext->GetXFADocView()->CreateWidgetAccIterator();
if (!pWidgetAccIterator)
return true;
@@ -676,8 +675,8 @@ void CPDFXFA_DocEnvironment::OnAfterNotifySubmit() {
if (!pWidgetHandler)
return;
- std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator(
- m_pContext->GetXFADocView()->CreateWidgetAccIterator());
+ std::unique_ptr<CXFA_WidgetAccIterator> pWidgetAccIterator =
+ m_pContext->GetXFADocView()->CreateWidgetAccIterator();
if (!pWidgetAccIterator)
return;