| Index: xfa/fxfa/app/xfa_ffwidget.cpp
|
| diff --git a/xfa/fxfa/app/xfa_ffwidget.cpp b/xfa/fxfa/app/xfa_ffwidget.cpp
|
| index dfe418b76be026c7c5739515c3b726e2a340bb56..99333ba1dd518ef32680bcecc8617b16e9742b67 100644
|
| --- a/xfa/fxfa/app/xfa_ffwidget.cpp
|
| +++ b/xfa/fxfa/app/xfa_ffwidget.cpp
|
| @@ -1054,7 +1054,7 @@ CFX_DIBitmap* XFA_LoadImageData(CXFA_FFDoc* pDoc,
|
| FXCODEC_IMAGE_TYPE type = XFA_GetImageType(wsContentType);
|
| CFX_ByteString bsContent;
|
| uint8_t* pImageBuffer = nullptr;
|
| - IFX_SeekableReadStream* pImageFileRead = nullptr;
|
| + CFX_RetainPtr<IFX_SeekableReadStream> pImageFileRead;
|
| if (wsImage.GetLength() > 0) {
|
| XFA_ATTRIBUTEENUM iEncoding =
|
| (XFA_ATTRIBUTEENUM)pImage->GetTransferEncoding();
|
| @@ -1092,7 +1092,6 @@ CFX_DIBitmap* XFA_LoadImageData(CXFA_FFDoc* pDoc,
|
| CFX_DIBitmap* pBitmap =
|
| XFA_LoadImageFromBuffer(pImageFileRead, type, iImageXDpi, iImageYDpi);
|
| FX_Free(pImageBuffer);
|
| - pImageFileRead->Release();
|
| return pBitmap;
|
| }
|
| static FXDIB_Format XFA_GetDIBFormat(FXCODEC_IMAGE_TYPE type,
|
| @@ -1115,18 +1114,20 @@ static FXDIB_Format XFA_GetDIBFormat(FXCODEC_IMAGE_TYPE type,
|
| }
|
| return dibFormat;
|
| }
|
| -CFX_DIBitmap* XFA_LoadImageFromBuffer(IFX_SeekableReadStream* pImageFileRead,
|
| - FXCODEC_IMAGE_TYPE type,
|
| - int32_t& iImageXDpi,
|
| - int32_t& iImageYDpi) {
|
| +
|
| +CFX_DIBitmap* XFA_LoadImageFromBuffer(
|
| + const CFX_RetainPtr<IFX_SeekableReadStream>& pImageFileRead,
|
| + FXCODEC_IMAGE_TYPE type,
|
| + int32_t& iImageXDpi,
|
| + int32_t& iImageYDpi) {
|
| CFX_GEModule* pGeModule = CFX_GEModule::Get();
|
| - if (!pGeModule) {
|
| + if (!pGeModule)
|
| return nullptr;
|
| - }
|
| +
|
| CCodec_ModuleMgr* pCodecMgr = pGeModule->GetCodecModule();
|
| - if (!pCodecMgr) {
|
| + if (!pCodecMgr)
|
| return nullptr;
|
| - }
|
| +
|
| CFX_DIBAttribute dibAttr;
|
| CFX_DIBitmap* pBitmap = nullptr;
|
| CCodec_ProgressiveDecoder* pProgressiveDecoder =
|
|
|