summaryrefslogtreecommitdiff
path: root/source/fitz/filter-predict.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/filter-predict.c')
-rw-r--r--source/fitz/filter-predict.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/source/fitz/filter-predict.c b/source/fitz/filter-predict.c
index 6862f8c9..3aaa6ee9 100644
--- a/source/fitz/filter-predict.c
+++ b/source/fitz/filter-predict.c
@@ -67,7 +67,19 @@ fz_predict_tiff(fz_predict *state, unsigned char *out, unsigned char *in, int le
for (k = 0; k < state->colors; k++)
left[k] = 0;
- memset(out, 0, state->stride);
+
+ /* special fast case */
+ if (state->bpc == 8)
+ {
+ for (i = 0; i < state->columns; i++)
+ for (k = 0; k < state->colors; k++)
+ *out++ = left[k] = (*in++ + left[k]) & 0xFF;
+ return;
+ }
+
+ /* putcomponent assumes zeroed memory for bpc < 8 */
+ if (state->bpc < 8)
+ memset(out, 0, state->stride);
for (i = 0; i < state->columns; i++)
{