aboutsummaryrefslogtreecommitdiff
path: root/src/png.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/png.c')
-rw-r--r--src/png.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/png.c b/src/png.c
index 43ef5519..d6a97f56 100644
--- a/src/png.c
+++ b/src/png.c
@@ -79,6 +79,7 @@ struct _DilloPng {
uchar_t **row_pointers; /* pntr to row starts */
jmp_buf jmpbuf; /* png error processing */
int error; /* error flag */
+ png_uint_32 previous_row;
int rowbytes; /* No. bytes in image row */
short passes;
short channels; /* No. image channels */
@@ -230,6 +231,11 @@ static void
png_progressive_combine_row(png_ptr, png->row_pointers[row_num], new_row);
+ if (row_num < png->previous_row) {
+ a_Dicache_new_scan(png->Image, png->url, png->version);
+ }
+ png->previous_row = row_num;
+
switch (png->channels) {
case 3:
a_Dicache_write(png->Image, png->url, png->version,
@@ -419,6 +425,7 @@ static DilloPng *Png_new(DilloImage *Image, DilloUrl *url, int version)
png->linebuf = NULL;
png->image_data = NULL;
png->row_pointers = NULL;
+ png->previous_row = 0;
return png;
}