vcl/source/filter/itiff/itiff.cxx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
New commits: commit ecae51e5f14dad2591d6a15f2e70b4d024fb7985 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon May 23 08:54:04 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon May 23 17:08:12 2022 +0200 tiled tiff found at rhbz552360-2.tiff fix up wrt skew and buffer size and the right put function Change-Id: Iff93876c39213668f38ba341e597741b695b47bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134759 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/filter/itiff/itiff.cxx b/vcl/source/filter/itiff/itiff.cxx index f919cda526dc..cb512d58577d 100644 --- a/vcl/source/filter/itiff/itiff.cxx +++ b/vcl/source/filter/itiff/itiff.cxx @@ -53,7 +53,7 @@ namespace { } - void SetPixels(uint32_t x, uint32_t y, uint32_t w, uint32_t h) + void SetPixels(uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint32_t skew) { const uint32_t* pSrc = aBuffer.data(); @@ -66,6 +66,7 @@ namespace pAlphaAccess->SetPixelIndex(y + nRow, x + nCol, 255 - TIFFGetA(*pSrc)); ++pSrc; } + pSrc += skew; } } }; @@ -124,11 +125,11 @@ static void putContigPixel(TIFFRGBAImage* img, uint32_t* /*raster*/, { Context* pContext = static_cast<Context*>(TIFFClientdata(img->tif)); - pContext->aBuffer.resize(w * h); + pContext->aBuffer.resize((w + toskew) * h); (pContext->pOrigContig)(img, pContext->aBuffer.data(), 0, 0, w, h, fromskew, toskew, cp); - pContext->SetPixels(x, y, w, h); + pContext->SetPixels(x, y, w, h, toskew); } static void putSeparatePixel(TIFFRGBAImage* img, uint32_t* /*raster*/, @@ -138,11 +139,11 @@ static void putSeparatePixel(TIFFRGBAImage* img, uint32_t* /*raster*/, { Context* pContext = static_cast<Context*>(TIFFClientdata(img->tif)); - pContext->aBuffer.resize(w * h); + pContext->aBuffer.resize((w + toskew) * h); (pContext->pOrigSeparate)(img, pContext->aBuffer.data(), 0, 0, w, h, fromskew, toskew, r, g, b, a); - pContext->SetPixels(x, y, w, h); + pContext->SetPixels(x, y, w, h, toskew); } bool ImportTiffGraphicImport(SvStream& rTIFF, Graphic& rGraphic) @@ -204,8 +205,8 @@ bool ImportTiffGraphicImport(SvStream& rTIFF, Graphic& rGraphic) if (TIFFRGBAImageOK(tif, emsg) && TIFFRGBAImageBegin(&img, tif, 1, emsg)) { img.req_orientation = ORIENTATION_TOPLEFT; - assert(!TIFFIsTiled(img.tif)); - if (!TIFFIsTiled(img.tif)) + assert(img.isContig); + if (img.isContig) { aContext.pOrigContig = img.put.contig; img.put.contig = putContigPixel;