diff options
author | Glenn Kennard <glenn.kennard@gmail.com> | 2008-03-30 15:27:12 +0200 |
---|---|---|
committer | Glenn Kennard <glenn.kennard@gmail.com> | 2008-03-30 15:27:12 +0200 |
commit | 1a8cd4c30f99a814c4c4b8d746216aba8d8d5f6c (patch) | |
tree | 283621ca10def8ae9fb38fad4d76e1e482209cfa | |
parent | 7af999d029f97ccf271fc52c104099136707f786 (diff) | |
download | mupdf-1a8cd4c30f99a814c4c4b8d746216aba8d8d5f6c.tar.xz |
Vectorize invert/copy loop in jbig2 stream decoder
-rw-r--r-- | stream/filt_jbig2d.c | 8 |
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; |