[Libreoffice-commits] core.git: Branch 'libreoffice-6-0' - vcl/source

Caolán McNamara caolanm at redhat.com
Thu Feb 22 09:09:16 UTC 2018


 vcl/source/gdi/pdfwriter_impl2.cxx |   27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

New commits:
commit ffdb0cfe9015609653d5add1220edb111de37317
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Feb 20 21:18:04 2018 +0000

    forcepoint #4
    
    Thanks to Antti Levomäki and Christian Jalio from Forcepoint.
    
    Change-Id: I569ca80267ad9b5a21da0029ba903d2a4c45a035
    Reviewed-on: https://gerrit.libreoffice.org/50085
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/vcl/source/gdi/pdfwriter_impl2.cxx b/vcl/source/gdi/pdfwriter_impl2.cxx
index 18ff07afc556..9bc58989a46c 100644
--- a/vcl/source/gdi/pdfwriter_impl2.cxx
+++ b/vcl/source/gdi/pdfwriter_impl2.cxx
@@ -1604,11 +1604,8 @@ inline bool isSet( const Scanline i_pLine, long i_nIndex )
     return (i_pLine[ i_nIndex/8 ] & (0x80 >> (i_nIndex&7))) != 0;
 }
 
-long findBitRun( const Scanline i_pLine, long i_nStartIndex, long i_nW, bool i_bSet )
+long findBitRunImpl( const Scanline i_pLine, long i_nStartIndex, long i_nW, bool i_bSet )
 {
-    if( i_nStartIndex < 0 )
-        return i_nW;
-
     long nIndex = i_nStartIndex;
     if( nIndex < i_nW )
     {
@@ -1670,6 +1667,24 @@ long findBitRun( const Scanline i_pLine, long i_nStartIndex, long i_nW, bool i_b
     return nIndex < i_nW ? nIndex : i_nW;
 }
 
+long findBitRun(const Scanline i_pLine, long i_nStartIndex, long i_nW, bool i_bSet)
+{
+    if (i_nStartIndex < 0)
+        return i_nW;
+
+    return findBitRunImpl(i_pLine, i_nStartIndex, i_nW, i_bSet);
+}
+
+long findBitRun(const Scanline i_pLine, long i_nStartIndex, long i_nW)
+{
+    if (i_nStartIndex < 0)
+        return i_nW;
+
+    const bool bSet = i_nStartIndex < i_nW && isSet(i_pLine, i_nStartIndex);
+
+    return findBitRunImpl(i_pLine, i_nStartIndex, i_nW, bSet);
+}
+
 struct BitStreamState
 {
     sal_uInt8       mnBuffer;
@@ -1973,7 +1988,7 @@ void PDFWriterImpl::writeG4Stream( BitmapReadAccess const * i_pBitmap )
         long nRefIndex1 = bRefSet ? 0 : findBitRun( pRefLine, 0, nW, bRefSet );
         for( ; nLineIndex < nW; )
         {
-            long nRefIndex2 = findBitRun( pRefLine, nRefIndex1, nW, isSet( pRefLine, nRefIndex1 ) );
+            long nRefIndex2 = findBitRun( pRefLine, nRefIndex1, nW );
             if( nRefIndex2 >= nRunIndex1 )
             {
                 long nDiff = nRefIndex1 - nRunIndex1;
@@ -2003,7 +2018,7 @@ void PDFWriterImpl::writeG4Stream( BitmapReadAccess const * i_pBitmap )
                 {   // difference too large, horizontal coding
                     // emit horz code 001
                     putG4Bits( 3, 0x1, aBitState );
-                    long nRunIndex2 = findBitRun( pCurLine, nRunIndex1, nW, isSet( pCurLine, nRunIndex1 ) );
+                    long nRunIndex2 = findBitRun( pCurLine, nRunIndex1, nW );
                     bool bWhiteFirst = ( nLineIndex + nRunIndex1 == 0 || ! isSet( pCurLine, nLineIndex ) );
                     putG4Span( nRunIndex1 - nLineIndex, bWhiteFirst, aBitState );
                     putG4Span( nRunIndex2 - nRunIndex1, ! bWhiteFirst, aBitState );


More information about the Libreoffice-commits mailing list