| Index: core/fpdfapi/page/cpdf_image.cpp
|
| diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp
|
| index a17222e3430d39ccf58afc1809d2d9ae436a0909..34a7fa348d4f431cd7567c65203d3c1df3b53728 100644
|
| --- a/core/fpdfapi/page/cpdf_image.cpp
|
| +++ b/core/fpdfapi/page/cpdf_image.cpp
|
| @@ -230,8 +230,10 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap) {
|
| bCopyWithoutAlpha = false;
|
| }
|
|
|
| - const CFX_DIBitmap* pMaskBitmap =
|
| - pBitmap->HasAlpha() ? pBitmap->GetAlphaMask() : nullptr;
|
| + std::unique_ptr<CFX_DIBitmap> pMaskBitmap;
|
| + if (pBitmap->HasAlpha())
|
| + pMaskBitmap = pBitmap->CloneAlphaMask();
|
| +
|
| if (pMaskBitmap) {
|
| int32_t maskWidth = pMaskBitmap->GetWidth();
|
| int32_t maskHeight = pMaskBitmap->GetHeight();
|
| @@ -258,7 +260,6 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap) {
|
| mask_buf, mask_size, std::move(pMaskDict));
|
| pDict->SetNewFor<CPDF_Reference>("SMask", m_pDocument,
|
| pNewStream->GetObjNum());
|
| - delete pMaskBitmap;
|
| }
|
|
|
| uint8_t* src_buf = pBitmap->GetBuffer();
|
|
|