summaryrefslogtreecommitdiff
path: root/source/fitz
AgeCommit message (Collapse)Author
2017-05-25Update Type 3 font bbox with glyph bboxes if the former is invalid.Tor Andersson
Fix for bug 697943. Set the initial replacement font bbox to the empty rectangle for type3 fonts, and let the type3 glyph loading initialize by taking the union of all glyph bboxes. Set the replacement font bbox for non-Type3 fonts to the unit rectangle. Also remove unused flag from fz_font struct.
2017-05-25Replace broken FZ_IGNORE_IMAGE hints with other mechanisms.Tor Andersson
Add an option to the structured text device to preserve images. If the PDF processor does not have ops to process images, then skip loading them in the interpreter if possible. If the device does not have any image callbacks, then don't set the image processing ops in the run device. This accomplishes the same effect as the device hints were intended to do, but without needing to expose them to the PDF interpreter which may not even have a device since we now have multiple PDF op processors.
2017-05-23Remove unused strtod function.Tor Andersson
2017-05-09Fix plotter bug.Robin Watts
We were passing in the wrong source alpha value in one of the plotter calls. This is not a call used in our standard builds, hence us not having seen the problem before. Credit to Sebastian for spotting the problem and suggesting the fix.
2017-05-09Fix incorrect sa value passed in a plotter.Robin Watts
Should be 0..256 not 0..1
2017-05-09Fix Memento 'history' of block actions.Robin Watts
We call Memento_takeRef etc throughout the code so that each block keeps a history of the events on which it's reference count changes. I'd missed a case - fixed here.
2017-05-09Fix key_storable operations leading to leaks of fz_image.Robin Watts
key_storable objects can either be freed 'directly' by an API call (such as fz_drop_image), or 'internally' by the store realising that the sole thing holding onto a key_storable is a key. The current code frees more structure in the direct call than it does in the internal call. Clearly this is wrong and leads to leaks. The fix is to do ALL the freeing in the internal 'drop' function within the key_storable. This means we don't need (or want) either fz_drop_key_storable_key or fz_drop_key_storable to return an int to tell us whether they were actually dropped, so we make that change to simplify the code. This shifts the responsibility for freeing the extra internal structure into the innermost drop functions - fz_drop_image_imp and fz_drop_image_gprf_imp. To avoid duplicating code, we put the extra freeing logic into a fz_drop_image_base function.
2017-05-08tiff: Fix bug where both tiff and fax decoders inverted the image.Sebastian Rasmussen
2017-05-08Bug 697864: Free temporary pixmaps only if created.Sebastian Rasmussen
Previously this caused memory checker errors due to a non-temporary pixmap being accidentally freed and then later reused as expected.
2017-05-04Drop FZ_PATH_MAX macro.Tor Andersson
Define PATH_MAX in the few files that use it, should it be missing.
2017-05-03Fix windows builds: No S_ISDIR macro.Robin Watts
2017-05-02tiff: Fix typo in validation of tiles images.Sebastian Rasmussen
2017-05-02tiff: Scale Lab components to suit colorspace.Sebastian Rasmussen
TIFF already provides the a/b components prescaled. Previously the colorspace color conversion process scaled them again, causing out of range behaviour.
2017-04-30tiff: Set k>0 for CCITT fax group 3 1D/2D compression.Sebastian Rasmussen
Previously, if a TIFF file was encoded using CCITT fax group 3 compression and mixing 1D and 2D codes, the fax decoder was not instructed to parse the 1D/2D indication bit after EOL. This caused later issues when parsing the succeeding 1D/2D code, e.g. resulting in the decoder encountering a negative 1D code and returning with an error. Setting k>0 means the 1D/2D indication bit is parsed. The CCITT fax group 3 specification recommends setting k based on the vertical resolution. MuPDF's fax decoder depends only on if k is <0, 0 or >0, not its value (as recommended by the PDF specification). Therefore it is not necessary to use the vertical resolution to determine a particular value for k.
2017-04-27Typedef function pointers consistently.Tor Andersson
2017-04-27Remove debug printing code.Tor Andersson
It's not used, so prone to bit rot. Better to purge it.
2017-04-27Clean up store debug printing.Tor Andersson
Replace fz_print_hash with fz_hash_for_each iterator. Use string formatting callback.
2017-04-27Move fz_outline and pdf_xref debug printing to pdfshow.cTor Andersson
That's where it's actually being used.
2017-04-27Use FZ_SEEK_SET macros for fz_seek.Tor Andersson
Don't depend on stdio.h for our own I/O functions.
2017-04-27Ensure we can compile as -pedantic -std=c99.Tor Andersson
2017-04-27Include required system headers.Tor Andersson
2017-04-27Remove fz_function abstract structure.Tor Andersson
There is only one implementation, so don't bother with the abstraction. Just use pdf_function directly.
2017-04-27Use fz_snprintf.Tor Andersson
2017-04-27Include "mupdf/ucdn.h" explicitly.Tor Andersson
2017-04-27Use namespace prefix for bidi defines.Tor Andersson
2017-04-27Use FZ_PATH_MAX.Tor Andersson
PATH_MAX is Linux specific.
2017-04-27Use namespace for AES crypto code.Tor Andersson
2017-04-27Rename FMT_zu to FZ_FMT_zu.Tor Andersson
Don't use FMT_zu macro for fz_throw/fz_warn, since we can portably handle '%zu' in our own printf formatting.
2017-04-27memento: Don't include unnecessary headers.Tor Andersson
2017-04-26Tweak gel bbox calculation.Robin Watts
2017-04-14Scan converter; API tweak.Robin Watts
Decide whether to dash or not in the scan converter, not the draw-device.
2017-04-13Scan converter; simplify API.Robin Watts
In all cases we reset the gel before populating it, so pull this out of the draw device into the population routines.
2017-04-13Scan converter; simplify API.Robin Watts
In all cases, we sort the gel before scan converting it. So just roll the sort call into the scan convert call.
2017-04-13Export fz_recognize_document and use it in java code.Sebastian Rasmussen
2017-04-13Move extension/mimetype detection to common function.Sebastian Rasmussen
A document handler normally only exposes a list of extensions and mimetypes. Only formats that use some kind of extra detection mechnism need to supply a recognize() callback, such as xps that can handle .xps-files unpacked into a directory.
2017-04-11Add fz_asprintf function to allocate a string and format output.Tor Andersson
2017-04-05jpx: Make Luratech decoder glue layer compile.Sebastian Rasmussen
2017-03-31Remove Reap lock.Robin Watts
I can see no reason for having the reap lock now. We always hold the ALLOC lock when we need it, so just live with that.
2017-03-31Fix leaks of reaped object keys.Robin Watts
2017-03-31Fix mutex asserts seen during reaping.Robin Watts
As seen with: mutool draw -o out.ppm Bug697706.epub
2017-03-29Happy New Year!Sebastian Rasmussen
2017-03-28Pass the 'serif' flag to fz_lookup_noto_font.Tor Andersson
2017-03-28Rejig fz_new_annot to fz_new_derived_annot.Robin Watts
More consistent with the rest of the code.
2017-03-28Rejig fz_new_device to be fz_new_derived_device.Robin Watts
In keeping with the rest of the code.
2017-03-28Rename fz_new_archive to fz_new_derived_archiveRobin Watts
Fits with the rest of the code.
2017-03-27Tweak document_writer - don't pass dev back in.Robin Watts
It seems odd for a document writer to pass a device pointer out, and then require it to be passed back in. Hide that in the public API.
2017-03-25Add fz_storable_needs_reaping.Robin Watts
Avoids needing to access the internals of reference counting.
2017-03-24Fix needs_reap entry in key storable.Robin Watts
There is no need to hold a separate flag to say that we need reaping, when this can be implied from the store_key_refs and the normal refcount being equal. In addition, I don't think we were ever actually setting this, so the code was wrong to start with.
2017-03-24Ensure fz_store_types are all static const.Robin Watts
2017-03-24Add fz_new_XXX_document_writer calls for pixmaps.Robin Watts
This enables people to access (say) a PNG writer without pulling in every single document writer at link time. (Of course, currently, without function level linking, even now we'll pull everything in, but we can improve this by splitting source files up).