Index: core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
index a5a91ebc53ba719e09d0a6705c601a5aa9acfced..bb80196d6f6a15015f1eadb35f59da560b2dbfb5 100644 |
--- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
+++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
@@ -190,8 +190,10 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, FX_INT32 iCompress, IFX_F |
} |
} |
const CFX_DIBitmap* pMaskBitmap = NULL; |
+ FX_BOOL bDeleteMask = FALSE; |
if (pBitmap->HasAlpha()) { |
pMaskBitmap = pBitmap->GetAlphaMask(); |
+ bDeleteMask = TRUE; |
} |
if (!pMaskBitmap && pMask) { |
FXDIB_Format maskFormat = pMask->GetFormat(); |
@@ -204,7 +206,6 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, FX_INT32 iCompress, IFX_F |
FX_INT32 maskHeight = pMaskBitmap->GetHeight(); |
FX_LPBYTE mask_buf = NULL; |
FX_STRSIZE mask_size; |
- FX_BOOL bDeleteMask = TRUE; |
CPDF_Dictionary* pMaskDict = new CPDF_Dictionary; |
pMaskDict->SetAtName(FX_BSTRC("Type"), FX_BSTRC("XObject")); |
pMaskDict->SetAtName(FX_BSTRC("Subtype"), FX_BSTRC("Image")); |
@@ -240,7 +241,7 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, FX_INT32 iCompress, IFX_F |
bDeleteMask = FALSE; |
pDict->SetAtReference(FX_BSTRC("SMask"), m_pDocument, pMaskStream); |
} |
- if (pBitmap->HasAlpha()) { |
+ if (bDeleteMask) { |
delete pMaskBitmap; |
} |
} |