summaryrefslogtreecommitdiffstats
path: root/libqpdf/Pl_PNGFilter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/Pl_PNGFilter.cc')
-rw-r--r--libqpdf/Pl_PNGFilter.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/libqpdf/Pl_PNGFilter.cc b/libqpdf/Pl_PNGFilter.cc
index 217a14fa..a39c17f9 100644
--- a/libqpdf/Pl_PNGFilter.cc
+++ b/libqpdf/Pl_PNGFilter.cc
@@ -153,7 +153,7 @@ Pl_PNGFilter::decodeSub()
left = buffer[i - bpp];
}
- buffer[i] += left;
+ buffer[i] = static_cast<unsigned char>(buffer[i] + left);
}
}
@@ -167,7 +167,7 @@ Pl_PNGFilter::decodeUp()
for (unsigned int i = 0; i < this->bytes_per_row; ++i)
{
unsigned char up = above_buffer[i];
- buffer[i] += up;
+ buffer[i] = static_cast<unsigned char>(buffer[i] + up);
}
}
@@ -190,7 +190,7 @@ Pl_PNGFilter::decodeAverage()
}
up = above_buffer[i];
- buffer[i] += (left+up) / 2;
+ buffer[i] = static_cast<unsigned char>(buffer[i] + (left+up) / 2);
}
}
@@ -214,7 +214,9 @@ Pl_PNGFilter::decodePaeth()
upper_left = above_buffer[i - bpp];
}
- buffer[i] += this->PaethPredictor(left, up, upper_left);
+ buffer[i] = static_cast<unsigned char>(
+ buffer[i] +
+ this->PaethPredictor(left, up, upper_left));
}
}
@@ -247,7 +249,8 @@ Pl_PNGFilter::encodeRow()
{
for (unsigned int i = 0; i < this->bytes_per_row; ++i)
{
- ch = this->cur_row[i] - this->prev_row[i];
+ ch = static_cast<unsigned char>(
+ this->cur_row[i] - this->prev_row[i]);
getNext()->write(&ch, 1);
}
}