drawinglayer/source/processor2d/contourextractor2d.cxx |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit cfbdbfdc9964f77b447a2b200398b3ab00cec1d7
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Wed Jul 24 14:20:53 2019 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Fri Jul 26 08:40:38 2019 +0200

    Be careful not to add empty rect representation to contour polypolygon
    
    The implementation of TextSimplePortionPrimitive2D::getB2DRange in
    drawinglayer/source/primitive2d/textprimitive2d.cxx can return an empty 
B2DRange
    (which is represented internally as a huge square with DBL_MIN/MAX 
coordindates)
    and adding that to maExtractedContour would later cause
    
    > include/tools/helpers.hxx:76:44: runtime error: 1.79769e+308 is outside 
the range of representable values of type 'long'
    >  #0 in FRound(double) at include/tools/helpers.hxx:76:44
    >  #1 in ImplPolygon::ImplPolygon(basegfx::B2DPolygon const&) at 
tools/source/generic/poly.cxx:474:30
    >  #2 in tools::Polygon::Polygon(basegfx::B2DPolygon const&) at 
tools/source/generic/poly.cxx:1849:72
    >  #3 in TextRanger::TextRanger(basegfx::B2DPolyPolygon const&, 
basegfx::B2DPolyPolygon const*, unsigned short, unsigned short, unsigned short, 
bool, bool, bool) at editeng/source/misc/txtrange.cxx:67:40
    >  #4 in std::_MakeUniq<TextRanger>::__single_object 
std::make_unique<TextRanger, basegfx::B2DPolyPolygon&, 
basegfx::B2DPolyPolygon*, int, unsigned short, unsigned short, bool, bool, 
bool>(basegfx::B2DPolyPolygon&, basegfx::B2DPolyPolygon*&&, int&&, unsigned 
short&&, unsigned short&&, bool&&, bool&&, bool&&) at 
/home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/10.0.0/../../../../include/c++/10.0.0/bits/unique_ptr.h:930:34
    >  #5 in SwContourCache::ContourRect(SwFormat const*, SdrObject const*, 
SwTextFrame const*, SwRect const&, long, bool) at 
sw/source/core/text/txtfly.cxx:252:13
    
    when processing such a DBL_MAX = 1.79769e+308 coordinate while loading
    doc/ooo106646-2.doc (i.e., 3sem-program-electricity_and_magnetism.doc 
attached
    at <https://bz.apache.org/ooo/show_bug.cgi?id=106646#c13>).
    
    Change-Id: I7bcdf7fdb3a756d7fab0543697efeb8f92ceddb7
    Reviewed-on: https://gerrit.libreoffice.org/76261
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/drawinglayer/source/processor2d/contourextractor2d.cxx 
b/drawinglayer/source/processor2d/contourextractor2d.cxx
index 7e730bd2293e..5961cef14115 100644
--- a/drawinglayer/source/processor2d/contourextractor2d.cxx
+++ b/drawinglayer/source/processor2d/contourextractor2d.cxx
@@ -176,8 +176,11 @@ namespace drawinglayer
                 {
                     // primitives who's BoundRect will be added in world 
coordinates
                     basegfx::B2DRange 
aRange(rCandidate.getB2DRange(getViewInformation2D()));
-                    
aRange.transform(getViewInformation2D().getObjectTransformation());
-                    
maExtractedContour.emplace_back(basegfx::utils::createPolygonFromRect(aRange));
+                    if (!aRange.isEmpty())
+                    {
+                        
aRange.transform(getViewInformation2D().getObjectTransformation());
+                        
maExtractedContour.emplace_back(basegfx::utils::createPolygonFromRect(aRange));
+                    }
                     break;
                 }
                 default :
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to