fix subtle bug with determining the number of rows for strips that are the
last strip in a separation but not the last strip of all in TIFFReadEncodedStrip().
This commit is contained in:
parent
889ea5bfd9
commit
bbfb710c80
@ -1,4 +1,4 @@
|
|||||||
/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v 1.4 2000-01-28 21:07:40 warmerda Exp $ */
|
/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v 1.5 2000-07-12 19:20:52 warmerda Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988-1997 Sam Leffler
|
* Copyright (c) 1988-1997 Sam Leffler
|
||||||
@ -122,6 +122,7 @@ TIFFReadEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)
|
|||||||
TIFFDirectory *td = &tif->tif_dir;
|
TIFFDirectory *td = &tif->tif_dir;
|
||||||
uint32 nrows;
|
uint32 nrows;
|
||||||
tsize_t stripsize;
|
tsize_t stripsize;
|
||||||
|
tstrip_t sep_strip, strips_per_sep;
|
||||||
|
|
||||||
if (!TIFFCheckRead(tif, 0))
|
if (!TIFFCheckRead(tif, 0))
|
||||||
return (-1);
|
return (-1);
|
||||||
@ -132,11 +133,17 @@ TIFFReadEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Calculate the strip size according to the number of
|
* Calculate the strip size according to the number of
|
||||||
* rows in the strip (check for truncated last strip).
|
* rows in the strip (check for truncated last strip on any
|
||||||
|
* of the separations).
|
||||||
*/
|
*/
|
||||||
if (strip != td->td_nstrips-1 ||
|
strips_per_sep = (td->td_imagelength+td->td_rowsperstrip-1)
|
||||||
|
/ td->td_rowsperstrip;
|
||||||
|
sep_strip = strip % strips_per_sep;
|
||||||
|
|
||||||
|
if (sep_strip != strips_per_sep-1 ||
|
||||||
(nrows = td->td_imagelength % td->td_rowsperstrip) == 0)
|
(nrows = td->td_imagelength % td->td_rowsperstrip) == 0)
|
||||||
nrows = td->td_rowsperstrip;
|
nrows = td->td_rowsperstrip;
|
||||||
|
|
||||||
stripsize = TIFFVStripSize(tif, nrows);
|
stripsize = TIFFVStripSize(tif, nrows);
|
||||||
if (size == (tsize_t) -1)
|
if (size == (tsize_t) -1)
|
||||||
size = stripsize;
|
size = stripsize;
|
||||||
|
Loading…
Reference in New Issue
Block a user