[PATCH] Change in core[libreoffice-3-6]: Fix fdo#59616 - ensure BitmapEx has same-sized subbitmaps
Thorsten Behrens (via Code Review)
gerrit at gerrit.libreoffice.org
Wed Jan 23 02:52:53 PST 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/1822
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/22/1822/1
Fix fdo#59616 - ensure BitmapEx has same-sized subbitmaps
Lots of code relies on the fact that the two bitmaps inside a
BitmapEx actually have the same size. Enforce that convention during
import.
Change-Id: I436ccc33b06c627cd6347747d22c24bfaf7ca932
---
M vcl/source/gdi/bitmapex.cxx
1 file changed, 18 insertions(+), 0 deletions(-)
diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx
index d1d4262..133448c 100644
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@ -904,6 +904,24 @@
if( !!aMask)
{
+ // fdo#59616 enforce same size for both mask and content
+ if( aMask.GetSizePixel() != aBmp.GetSizePixel() )
+ {
+ Bitmap aNewMask;
+ const Size aNominalSize=aBmp.GetSizePixel();
+ BitmapReadAccess aAcc(aMask);
+ if( aAcc.HasPalette() )
+ aNewMask = Bitmap(aNominalSize,
+ aMask.GetBitCount(),
+ &aAcc.GetPalette());
+ else
+ aNewMask = Bitmap(aNominalSize,
+ aMask.GetBitCount());
+ const Rectangle aCopyArea(Point(0,0), aNominalSize);
+ aNewMask.CopyPixel(aCopyArea, aCopyArea, &aMask);
+ aMask = aNewMask;
+ }
+
// do we have an alpha mask?
if( ( 8 == aMask.GetBitCount() ) && aMask.HasGreyPalette() )
{
--
To view, visit https://gerrit.libreoffice.org/1822
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I436ccc33b06c627cd6347747d22c24bfaf7ca932
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-3-6
Gerrit-Owner: Thorsten Behrens <tbehrens at suse.com>
More information about the LibreOffice
mailing list