summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-07-09 13:56:18 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-07-09 13:56:18 +0200
commita21714f0287174a693e40b7a6b6ad21bf5fd4f09 (patch)
tree634aca3f2ad54860e608f691648a6e2eebd395a2
parent6662e2b388576dae8b2cddbbb5732a0663dcc1a6 (diff)
downloadlibtiff-git-a21714f0287174a693e40b7a6b6ad21bf5fd4f09.tar.gz
TIFFWriteCheck(): call TIFFForceStrileArrayWriting() when needed (should have gone with eaeca6274ae71cdfaeb9f673b6fb0f3cfc0e6ce5) (master only)
-rw-r--r--libtiff/tif_write.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libtiff/tif_write.c b/libtiff/tif_write.c
index 1bb84e7b..33e803c1 100644
--- a/libtiff/tif_write.c
+++ b/libtiff/tif_write.c
@@ -626,6 +626,20 @@ TIFFWriteCheck(TIFF* tif, int tiles, const char* module)
if (tif->tif_scanlinesize == 0)
return (0);
tif->tif_flags |= TIFF_BEENWRITING;
+
+ if( tif->tif_dir.td_stripoffset_entry.tdir_tag != 0 &&
+ tif->tif_dir.td_stripoffset_entry.tdir_count == 0 &&
+ tif->tif_dir.td_stripoffset_entry.tdir_type == 0 &&
+ tif->tif_dir.td_stripoffset_entry.tdir_offset.toff_long8 == 0 &&
+ tif->tif_dir.td_stripbytecount_entry.tdir_tag != 0 &&
+ tif->tif_dir.td_stripbytecount_entry.tdir_count == 0 &&
+ tif->tif_dir.td_stripbytecount_entry.tdir_type == 0 &&
+ tif->tif_dir.td_stripbytecount_entry.tdir_offset.toff_long8 == 0 &&
+ !(tif->tif_flags & TIFF_DIRTYDIRECT) )
+ {
+ TIFFForceStrileArrayWriting(tif);
+ }
+
return (1);
}