| Index: fpdfsdk/fpdf_ext.cpp
|
| diff --git a/fpdfsdk/fpdf_ext.cpp b/fpdfsdk/fpdf_ext.cpp
|
| index 350945e3287e594f73d65c24f9f5435aae53a9c4..ad65b1bc9658f5dec078cccec92b356f341be4fd 100644
|
| --- a/fpdfsdk/fpdf_ext.cpp
|
| +++ b/fpdfsdk/fpdf_ext.cpp
|
| @@ -11,6 +11,7 @@
|
| #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
|
| #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
|
| #include "core/fpdfapi/include/cpdf_modulemgr.h"
|
| +#include "core/fxcrt/include/fx_basic.h"
|
| #include "core/fxcrt/include/fx_xml.h"
|
| #include "fpdfsdk/include/fsdk_define.h"
|
|
|
| @@ -20,7 +21,7 @@
|
|
|
| #define FPDFSDK_UNSUPPORT_CALL 100
|
|
|
| -class CFSDK_UnsupportInfo_Adapter {
|
| +class CFSDK_UnsupportInfo_Adapter : public CFX_Deletable {
|
| public:
|
| explicit CFSDK_UnsupportInfo_Adapter(UNSUPPORT_INFO* unsp_info)
|
| : m_unsp_info(unsp_info) {}
|
| @@ -37,18 +38,13 @@ void CFSDK_UnsupportInfo_Adapter::ReportError(int nErrorType) {
|
| }
|
| }
|
|
|
| -void FreeUnsupportInfo(void* pData) {
|
| - CFSDK_UnsupportInfo_Adapter* pAdapter = (CFSDK_UnsupportInfo_Adapter*)pData;
|
| - delete pAdapter;
|
| -}
|
| -
|
| FX_BOOL FPDF_UnSupportError(int nError) {
|
| CFSDK_UnsupportInfo_Adapter* pAdapter =
|
| - (CFSDK_UnsupportInfo_Adapter*)CPDF_ModuleMgr::Get()->GetPrivateData(
|
| - (void*)FPDFSDK_UNSUPPORT_CALL);
|
| -
|
| + static_cast<CFSDK_UnsupportInfo_Adapter*>(
|
| + CPDF_ModuleMgr::Get()->GetUnsupportInfoAdapter());
|
| if (!pAdapter)
|
| return FALSE;
|
| +
|
| pAdapter->ReportError(nError);
|
| return TRUE;
|
| }
|
| @@ -57,12 +53,9 @@ DLLEXPORT FPDF_BOOL STDCALL
|
| FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info) {
|
| if (!unsp_info || unsp_info->version != 1)
|
| return FALSE;
|
| - CFSDK_UnsupportInfo_Adapter* pAdapter =
|
| - new CFSDK_UnsupportInfo_Adapter(unsp_info);
|
| -
|
| - CPDF_ModuleMgr::Get()->SetPrivateData((void*)FPDFSDK_UNSUPPORT_CALL, pAdapter,
|
| - &FreeUnsupportInfo);
|
|
|
| + CPDF_ModuleMgr::Get()->SetUnsupportInfoAdapter(
|
| + new CFSDK_UnsupportInfo_Adapter(unsp_info));
|
| return TRUE;
|
| }
|
|
|
|
|