summaryrefslogtreecommitdiff
path: root/source/fitz
AgeCommit message (Collapse)Author
2016-09-27Fix typo in fz_valgrind_pixmapRobin Watts
Function exists purely for doing valgrind testing of pixmap definedness.
2016-09-28tiff: Do not clobber input buffer if fill order is reversed.Sebastian Rasmussen
2016-09-28tiff: Do error handling for decoders in a single place.Sebastian Rasmussen
2016-09-28tiff: Validate that tag/tile/strip offsets are within bounds.Sebastian Rasmussen
2016-09-28Bug 697166: tiff: Avoid freeing offset/bytecount arrays twice.Sebastian Rasmussen
2016-09-28Bug 697165: tiff: Do not allow duplicate array tags.Sebastian Rasmussen
Previously this caused a memory leak.
2016-09-28Bug 697155: tiff: Drop stream if compression is unknown.Sebastian Rasmussen
m5-299787ea764c0a88bc481364eded5556.tif
2016-09-28Bug 697157: tiff: Rational tag denominators may not be zero.Sebastian Rasmussen
2016-09-28Bug 697156: tiff: Free tile arrays after use.Sebastian Rasmussen
2016-09-28Bug 697154: tiff: Detect error when decoding strip/tile data.Sebastian Rasmussen
2016-09-27Bug 697153: tiff: Image dimensions must always be bigger than 0.Sebastian Rasmussen
2016-09-27Bug 697152: jpeg: Use correct macro to get client data.Sebastian Rasmussen
In commit 6a8abce9603f69b57e407f0df4044be919f507d7 an agnostic memory handler was introduced for libjpeg. While this commit changed error_exit_dct() it forgot to make a similar change in error_exit().
2016-09-27Bug 697163: gif: Fix integer overflow in image dimensions.Sebastian Rasmussen
2016-09-27Bug 697162: gif: Color index must be inside color table.Sebastian Rasmussen
2016-09-27Bug 697161: gif: Frames may not be bigger than the image.Sebastian Rasmussen
2016-09-27Bug 697160: gif: Transparency index must be inside color table.Sebastian Rasmussen
2016-09-26Update OpenJPEG to the latest (git) version.Robin Watts
Part of the change in this code is to require opj_malloc and co. Sadly, opj_malloc and co do not take a context field, so a we need to wrap calls to openjpeg with a lock. I am reusing the freetype lock here for simplicity.
2016-09-27tiff: Fix typo in thunder decoder.Sebastian Rasmussen
2016-09-26tiff: Support tiled images.Sebastian Rasmussen
2016-09-26tiff: Estimate uncompressed strip sizes if missing.Sebastian Rasmussen
2016-09-26tiff: Reorganize code, preparing for tiled image support.Sebastian Rasmussen
2016-09-26tiff: Add support for thunder decoding.Sebastian Rasmussen
2016-09-26tiff: Support flate compression under differnent name.Sebastian Rasmussen
2016-09-26tiff: Support images with 2 and 16 bits per palette color.Sebastian Rasmussen
2016-09-26tiff: Support images using Lab colorspace.Sebastian Rasmussen
2016-09-26gif: If decompression fails, don't rely on uninitialized buffer data.Sebastian Rasmussen
2016-09-26gif: Use frame size when parsing a frame, not size of entire image.Sebastian Rasmussen
2016-09-26pnm: Interpret b/w image colors correctly.Sebastian Rasmussen
2016-09-23Check for buffer overflow in strtod ascii division.Tor Andersson
2016-09-23Fix warning: set but unused variable.Tor Andersson
2016-09-21Bug 697106: Mark 64bit constants as such.Robin Watts
Avoids gcc giving spurious warnings.
2016-09-20Fix Memento crashRobin Watts
When reallocing set the rawsize before attempting to write the post guard block.
2016-09-20Sync Memento with gs.Robin Watts
Including: Bug 697134: Tweak MEMENTO_GS_HACKS inclusion. Rather than rolling our own memset prototype in this case, use the one that gs provides. And, bug 697133: Fix typo in Memento. Causing a significant slowdown. Thanks to George Burgess IV for spotting this.
2016-09-20Avoid signed/unsigned warnings.Robin Watts
2016-09-19fz_store: Reap passes.Robin Watts
A few commits back, we introduced the fz_key_storable concept to allow us to cope with objects that were used both as values within the store and as parts of keys within the store. This commit worked, but showed up performance problems; when the store has several million PDF objects in it, bulk changes (such as dropping a display list or document) could trigger many passes across the store. We therefore introduce a mechanism to ameliorate this. These passes, now known as "reap passes", can be batched together using fz_defer_reap_start and fz_defer_reap_end. We trigger this start/end around display list dropping, and around PDF content stream processing. This should be fine, as deferral will be interrupted if we ever run our of memory during mallocing.
2016-09-19Make fz_printf() handle %lu.Sebastian Rasmussen
2016-09-19jpx: Fix off by one in palettized images.Sebastian Rasmussen
2016-09-18Make printing empty hash table entries optional.Sebastian Rasmussen
2016-09-18Fix printing of hash table.Sebastian Rasmussen
2016-09-18Make fz_printf() support %p.Sebastian Rasmussen
This is used at several places in mupdf.
2016-09-18Free fz_tree nodes when dropping tree.Sebastian Rasmussen
2016-09-18tiff: Do not assume that images always have alpha component.Sebastian Rasmussen
2016-09-17Squash some memento warnings in MEMENTO_LEAKONLY builds.Robin Watts
2016-09-16Bug 695988: Avoid sending image data multiple times.Robin Watts
If the same image is used repeatedly, then we currently send the data again and again. Instead, send each image as a reusable symbol and reuse it as required. This reduces the size of the output by over 50% for the example file, but unfortunately results in the example file killing both Firefox and Edge when we attempt to load it. The file seems entirely valid though, and this is a saving on sane files. There is a #define that can be made to revert to the old behaviour (SVG_SEND_REPEATED_IMAGES).
2016-09-16Improve fz_filter_store speed.Robin Watts
Now linear time rather than n^2.
2016-09-16Extend store to cope with references used in keys.Robin Watts
The store is effectively a list of items, where each item is a (key, value) pair. The design is such that we can easily get into the state where the only reference to a value is that held by the store. Subsequent references can then be generated by things being 'found' from within the store. While the only reference to an object is that held by it being a value in the store, the store is free to evict it to save memory. Images present a complication to this design; images are stored both as values within the store (by the pdf agent, so that we do not regenerate images each time we meet them in the file), and as parts of the keys within the store. For example, once an image is decoded to give a pixmap, the pixmap is cached in the store. The key to look that pixmap up again includes a reference to the image from which the pixmap was generated. This means, that for document handlers such as gproof that do not place images in the store, we can end up with images that are kept around purely by dint of being used as references in store keys. There is no chance of the value (the decoded pixmap) ever being 'found' from the store as no one other than the key is holding a reference to the image required. Thus the images/pixmaps are never freed until the store is emptied. This commit offers a fix for this situation. Standard store items are based on an fz_storable type. Here we introduce a new fz_key_storable type derived from that. As well as keeping track of the number of references a given item has to it, it keeps a separate count of the number of references a given item has to it from keys in the store. On dropping a reference, we check to see if the number of references has become the same as the number of references from keys in the store. If it has, then we know that these keys can never be 'found' again. So we filter them out of the store, which drops the items.
2016-09-16fz_unpack_tile now skips extra input components.Sebastian Rasmussen
This is useful when a TIFF image is grayscale but supplies more than a single component per sample.
2016-09-14Redirect fprintf to android logcat in debug builds.Robin Watts
This makes debugging much simpler.
2016-09-14Don't report addRef/dropRef events to Memento twice.Robin Watts
We call Memento_addRef etc in fz_keep_impXX functions, so don't call them in the callers too.
2016-09-14Add scripts to remove/replace 'static' from functions.Robin Watts
Getting a backtrace out with missing functions makes the backtrace much less useful. Some backtrace routines (such as that used by Memento on Android) are incapable of resolving static functions. We therefore provide 2 scripts (scripts/destatic.sh and scripts/restatic.sh) that respectively remove and replace the 'static' from function definitions. The scripts do not affect "static inline" or "static const" definitions, and they are are restricted to working in the source directory (excluding source/tools), thirdparty/mujs and the platform/{java,android} directories. The transformed source should NOT be checked in. To avoid problems with clashing symbols, some functions are renamed or tweaked slightly in this patch.