summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2014-03-19 12:34:44 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-03-19 20:27:15 +0000
commit674a8a084bff6aa089d073b2710cd6a8b6662546 (patch)
tree0b9376f68fda451d789fdce7768ac66a7dbbc2c6 /filter
parent43f74365f9a3cc913618e55cae0b050f4b0ca58c (diff)
Resolves: #i122984# Avoid too many Print JobSetups...
be more tolerant with last line TIFF imports (cherry picked from commit 0ab284f5064f66a11741fa4aa2e2774c1d7e5f14) Change-Id: I75c86422bfbf2f83e1027bbc1bd83260de39b3ca
Diffstat (limited to 'filter')
-rw-r--r--filter/source/graphicfilter/itiff/ccidecom.cxx8
-rw-r--r--filter/source/graphicfilter/itiff/ccidecom.hxx2
-rw-r--r--filter/source/graphicfilter/itiff/itiff.cxx2
3 files changed, 9 insertions, 3 deletions
diff --git a/filter/source/graphicfilter/itiff/ccidecom.cxx b/filter/source/graphicfilter/itiff/ccidecom.cxx
index ce708113f6d8..1d105b24f325 100644
--- a/filter/source/graphicfilter/itiff/ccidecom.cxx
+++ b/filter/source/graphicfilter/itiff/ccidecom.cxx
@@ -621,7 +621,7 @@ void CCIDecompressor::StartDecompression( SvStream & rIStream )
}
-sal_Bool CCIDecompressor::DecompressScanline( sal_uInt8 * pTarget, sal_uLong nTargetBits )
+sal_Bool CCIDecompressor::DecompressScanline( sal_uInt8 * pTarget, sal_uLong nTargetBits, bool bLastLine )
{
sal_uInt16 i;
sal_uInt8 * pDst;
@@ -706,6 +706,12 @@ sal_Bool CCIDecompressor::DecompressScanline( sal_uInt8 * pTarget, sal_uLong nTa
for ( i = 0; i < nLastLineSize; i++ ) *(pDst++)=*(pSrc++);
}
+ // #i122984#
+ if( !bStatus && bLastLine )
+ {
+ bStatus = sal_True;
+ }
+
if ( pIStream->GetError() )
bStatus = sal_False;
diff --git a/filter/source/graphicfilter/itiff/ccidecom.hxx b/filter/source/graphicfilter/itiff/ccidecom.hxx
index db5295ae97a6..e018dcf2c938 100644
--- a/filter/source/graphicfilter/itiff/ccidecom.hxx
+++ b/filter/source/graphicfilter/itiff/ccidecom.hxx
@@ -53,7 +53,7 @@ public:
void StartDecompression( SvStream & rIStream );
- sal_Bool DecompressScanline(sal_uInt8 * pTarget, sal_uLong nTargetBits );
+ sal_Bool DecompressScanline(sal_uInt8 * pTarget, sal_uLong nTargetBits, bool bLastLine );
private:
diff --git a/filter/source/graphicfilter/itiff/itiff.cxx b/filter/source/graphicfilter/itiff/itiff.cxx
index 4c2e1fb4c55a..dc276521a7c9 100644
--- a/filter/source/graphicfilter/itiff/itiff.cxx
+++ b/filter/source/graphicfilter/itiff/itiff.cxx
@@ -559,7 +559,7 @@ sal_Bool TIFFReader::ReadMap( sal_uLong nMinPercent, sal_uLong nMaxPercent )
pTIFF->Seek( pStripOffsets[ nStrip ] );
aCCIDecom.StartDecompression( *pTIFF );
}
- if ( aCCIDecom.DecompressScanline( pMap[ np ], nImageWidth * nBitsPerSample * nSamplesPerPixel / nPlanes ) == sal_False )
+ if ( aCCIDecom.DecompressScanline( pMap[ np ], nImageWidth * nBitsPerSample * nSamplesPerPixel / nPlanes, np + 1 == nPlanes ) == sal_False )
return sal_False;
if ( pTIFF->GetError() )
return sal_False;