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

Stephan Bergmann sbergman at redhat.com
Mon Mar 6 07:10:39 UTC 2017


 vcl/source/gdi/sallayout.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit aa2758e133a74cc5d76cdb42478604fcb0fe3f6e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Sun Mar 5 23:34:10 2017 +0100

    Revert "Does aPos need proper initialization here?"
    
    This reverts commit 55212835b5eba797a14430a0268b3bea773e0852.  For one, I'd
    intended to add the initialization in SalLayout::GetBoundRect, not
    SalLayout::GetOutline.  And for another, if you look closer, the overrides of
    GetNextGlyphs will always set rPos (ignoring any old value) upon returning non-
    zero.
    
    I'd seen calls to WinSalGraphics::DrawTextLayout ->
    D2DWriteTextOutRenderer::operator () -> GetBoundRect fail (thus returning false
    from operator () and causing the assert in DrawTextLayout to fire) after
    7453cb58df4ce434a1252567f961cfe497064aca "pPos and pGetNextGlypInfo always have
    the same value", but maybe that's even normal:  Prior to that commit, that call
    chain would trivially return false:  If none of the early returns from
    operator () hit, the final
    
      return (succeeded && bGlyphs && pRectToErase);
    
    would always return false as pRectToErase would be passed null from
    DrawTextLayout, and the assert there was
    
      assert(!result);

diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 2179b63..88f02d6 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -668,7 +668,7 @@ bool SalLayout::GetOutline( SalGraphics& rSalGraphics,
 
     basegfx::B2DPolyPolygon aGlyphOutline;
 
-    Point aPos(0, 0);
+    Point aPos;
     const GlyphItem* pGlyph;
     int nStart = 0;
     while (GetNextGlyphs(1, &pGlyph, aPos, nStart))


More information about the Libreoffice-commits mailing list