[Libreoffice-commits] core.git: vcl/headless

Stephan Bergmann sbergman at redhat.com
Tue Feb 2 17:21:48 UTC 2016


 vcl/headless/svpgdi.cxx |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 5abe0ab18a10a3cb13485ce3ba9433bd82b32221
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Feb 2 18:19:54 2016 +0100

    Avoid undefined out-of-bounds double -> sal_Int32 conversion
    
    ...upon empty rExtents, during "make Gallery_txtshapes"
    
    Change-Id: Ie482041828b7abcf13d0efb5da62d1158b7f5e92

diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index c72efca..edd230d 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -1271,8 +1271,21 @@ cairo_user_data_key_t* SvpSalGraphics::getDamageKey()
 
 void SvpSalGraphics::releaseCairoContext(cairo_t* cr, bool bXorModeAllowed, const basegfx::B2DRange& rExtents) const
 {
-    sal_Int32 nExtentsLeft(rExtents.getMinX()), nExtentsTop(rExtents.getMinY());
-    sal_Int32 nExtentsRight(rExtents.getMaxX()), nExtentsBottom(rExtents.getMaxY());
+    sal_Int32 nExtentsLeft;
+    sal_Int32 nExtentsTop;
+    sal_Int32 nExtentsRight;
+    sal_Int32 nExtentsBottom;
+    if (rExtents.isEmpty()) {
+        nExtentsLeft = 0;
+        nExtentsTop = 0;
+        nExtentsRight = 0;
+        nExtentsBottom = 0;
+    } else {
+        nExtentsLeft = rExtents.getMinX();
+        nExtentsTop = rExtents.getMinY();
+        nExtentsRight = rExtents.getMaxX();
+        nExtentsBottom = rExtents.getMaxY();
+    }
     sal_Int32 nWidth = cairo_image_surface_get_width(m_pSurface);
     sal_Int32 nHeight = cairo_image_surface_get_height(m_pSurface);
     nExtentsLeft = std::max<sal_Int32>(nExtentsLeft, 0);


More information about the Libreoffice-commits mailing list