summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Kennard <glenn.kennard@gmail.com>2008-03-30 15:27:12 +0200
committerGlenn Kennard <glenn.kennard@gmail.com>2008-03-30 15:27:12 +0200
commit1a8cd4c30f99a814c4c4b8d746216aba8d8d5f6c (patch)
tree283621ca10def8ae9fb38fad4d76e1e482209cfa
parent7af999d029f97ccf271fc52c104099136707f786 (diff)
downloadmupdf-1a8cd4c30f99a814c4c4b8d746216aba8d8d5f6c.tar.xz
Vectorize invert/copy loop in jbig2 stream decoder
-rw-r--r--stream/filt_jbig2d.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/stream/filt_jbig2d.c b/stream/filt_jbig2d.c
index 17abecd4..9f877d37 100644
--- a/stream/filt_jbig2d.c
+++ b/stream/filt_jbig2d.c
@@ -94,8 +94,12 @@ fz_processjbig2d(fz_filter *filter, fz_buffer *in, fz_buffer *out)
len = d->page->height * d->page->stride - d->idx;
/* XXX memcpy(out->wp, d->page->data + d->idx, len); */
- for (i = 0; i < len; i++)
- out->wp[i] = ~ d->page->data[d->idx + i];
+ {
+ unsigned char * restrict in = &d->page->data[d->idx];
+ unsigned char * restrict o = out->wp;
+ for (i = 0; i < len; i++)
+ *o++ = 0xff ^ *in++;
+ }
out->wp += len;
d->idx += len;