[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - vcl/source
Caolán McNamara
caolanm at redhat.com
Thu Feb 22 09:23:59 UTC 2018
vcl/source/gdi/pdfwriter_impl2.cxx | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
New commits:
commit 887c267aa87b187af93d5d1bd8007a6c1643d025
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/50086
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 bf039f142d58..351026f5a012 100644
--- a/vcl/source/gdi/pdfwriter_impl2.cxx
+++ b/vcl/source/gdi/pdfwriter_impl2.cxx
@@ -1605,11 +1605,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 )
{
@@ -1671,6 +1668,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;
@@ -1974,7 +1989,7 @@ void PDFWriterImpl::writeG4Stream( BitmapReadAccess* 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;
@@ -2004,7 +2019,7 @@ void PDFWriterImpl::writeG4Stream( BitmapReadAccess* 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