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 d73d7614dadc9d4e0b1967defd00e7229d86359f..d2f2c5072fc2ba4d5657beeb09f6f1078bed2029 100644 |
--- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
+++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp |
@@ -195,9 +195,13 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, FX_INT32 iCompress, IFX_F |
opType = 0; |
} |
} |
+ FX_BOOL bDeleteMask = FALSE; |
const CFX_DIBitmap* pMaskBitmap = NULL; |
if (pBitmap->HasAlpha()) { |
pMaskBitmap = pBitmap->GetAlphaMask(); |
+ if (pMaskBitmap) { |
+ bDeleteMask = TRUE; |
+ } |
} |
if (!pMaskBitmap && pMask) { |
FXDIB_Format maskFormat = pMask->GetFormat(); |
@@ -210,7 +214,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 = FX_NEW CPDF_Dictionary; |
pMaskDict->SetAtName(FX_BSTRC("Type"), FX_BSTRC("XObject")); |
pMaskDict->SetAtName(FX_BSTRC("Subtype"), FX_BSTRC("Image")); |
@@ -243,10 +246,9 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, FX_INT32 iCompress, IFX_F |
} |
pMaskStream = FX_NEW CPDF_Stream(mask_buf, mask_size, pMaskDict); |
m_pDocument->AddIndirectObject(pMaskStream); |
- bDeleteMask = FALSE; |
pDict->SetAtReference(FX_BSTRC("SMask"), m_pDocument, pMaskStream); |
} |
- if (pBitmap->HasAlpha()) { |
+ if (bDeleteMask) { |
delete pMaskBitmap; |
} |
} |