summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2016-03-16mutool draw: Add banded mode output for pbm files.Robin Watts
2016-03-16Avoid unused var warnings in Memento ref counting code.Robin Watts
2016-03-16glyph plotter; Use repeated inclusion of headerRobin Watts
To avoid having to duplicate a fairly large block of code several times, use repeated inclusion of a header with some macros to generate optimised glyph plotters.
2016-03-16Add optimised CMYK plotters.Robin Watts
We have optimised plotters for 2 and 4 components (i.e. greyscale and rgb). Add equivalent ones for CMYK.
2016-03-16Spot when we are fz_outputting to /dev/null or nul:Robin Watts
2016-03-16Speed pam writing.Robin Watts
2016-03-16Bug 696648: Send -sm output to stderr.Robin Watts
Thanks to Marcos for spotting the missing case.
2016-03-15Tweak fz_try/catch to fix overflow case.Robin Watts
In the current code, when we hit the fz_try(), we check to see if we are about to overflow the exception stack. If we are, we throw. This does NOT throw to the fz_catch following the try, but rather to the enclosing fz_always/fz_catch blocks. This can cause leaks, as it's very hard to code correctly. It would be a far nicer behaviour to have a failure in fz_try() cause us to throw to the immediately following fz_always/fz_catch. This commit achieves that.
2016-03-15Avoid shadowing 'stm' variable.Robin Watts
This leads to a leak.
2016-03-15Memento: Track fz_streams.Robin Watts
2016-03-15Memento: Avoid warnings building without HAVE_LIBDLRobin Watts
2016-03-15Fix leak in PDF device.Robin Watts
2016-03-15Make PDF objects ref changes memento-trackable.Robin Watts
2016-03-15Memento: Rename memento 'globals' to 'memento'.Robin Watts
Neatness.
2016-03-15Make all ref changes on storable items Memento trackable.Robin Watts
2016-03-15Memento: Add Memento_{takeRef,dropRef,reference} functions.Robin Watts
These work with MEMENTO_DETAILS to allow us to store the events where reference counts change.
2016-03-15Fix leak in PDF inline image handling.Robin Watts
2016-03-15mudraw: Fix leak of fz_output in stdout case.Robin Watts
2016-03-15Fix mode2compress for PCL.Robin Watts
Previously this would overrun buffers in the pathological case (ABBABBABB...). We now only break from literals to runs for a run of at least 3 (except at the start).
2016-03-15Fix leak/missing error cleanup in halftoning code.Robin Watts
Ensure we free buffers if we fail to malloc, and that we drop the temporary buffer at the end of halftoning a pixmap.
2016-03-15Mutool draw: Simplify output handling code.Robin Watts
At the moment we have the output file being opened in several different places, leading to several different places having to cope with the '-' handling. Simplify the code so that files are only opened in 1 place.
2016-03-14Remove begin_page and end_page device calls.Tor Andersson
To be moved into a new document writer interface later.
2016-03-14Make pdf_is_stream work on loaded stream dictionary objects as well.Tor Andersson
2016-03-14Fix 696507: Clamp correct values in fz_invert_pixmap_rect.Tor Andersson
The loop is exclusive, but the clamp check was as if it were inclusive.
2016-03-14html: Use pair break table from UAX #14 to add soft breaks.Tor Andersson
Note: does not handle the case where certain classes of characters prohibit breaking at spaces between them.
2016-03-14ucdn: Add support for UAX#14 linebreaking classes.Sebastian Rasmussen
2016-03-14xml: Fix linebreak before closing tag test.Tor Andersson
2016-03-14mudraw: Print summary information to stderr.Tor Andersson
2016-03-14js: Document password and metadata.Tor Andersson
2016-03-14js: Add DisplayList and DisplayListDevice.Tor Andersson
2016-03-14js: Fix some reference counting errors.Tor Andersson
2016-03-14js: Add upcasting to fz_document from pdf_document.Tor Andersson
2016-03-14js: More object accessor functions.Tor Andersson
2016-03-14js: Add pdf.countPages and pdf.findPage.Tor Andersson
2016-03-14js: Add buffer.save() to write contents of buffer to file.Tor Andersson
2016-03-14js: Add obj.writeStream and writeRawStream to update stream contents.Tor Andersson
2016-03-14js: Add obj.readStream and obj.readRawStream.Tor Andersson
2016-03-14js: Add PDFObject.forEach(f) to iterate over dictionaries and arrays.Tor Andersson
2016-03-14Take pdf_obj argument to pdf_is_stream.Tor Andersson
2016-03-11Fix various warnings.Robin Watts
"Defined but not used" and "Set but not used" as seen with ndk-build.
2016-03-11Implement fz_text_language support functions.Robin Watts
Add code to convert to and from fz_text_language codes from ISO 639 language strings. No validation is carried out.
2016-03-11Rejig Bidirectional and Text code.Robin Watts
We move to using bidirectional "levels" throughout. This should give us better behaviour vis-a-vis nested l2r/l2r text. This also allows us to carry xps levels throughout with no loss of information. This also avoids the need to special case numbers. We accordingly carry more information into fz_text. As well as wmode, also hold additional details about the text spans. We now include the directionality of the bidi level text (either as derived from bidi code, or from the original document (e.g. xps)), the directionality of text (as specified in the original document (e.g. html)), and the language of the text (if specified in the original document).
2016-03-10Memento: Pull in latest fixes from gs.Robin Watts
2016-03-07Memento: List block details at closedown.Robin Watts
2016-03-07Fix signed/unsigned comparison warning.Robin Watts
2016-03-07murun: Avoid returning values from void functions.Robin Watts
2016-03-07Memento: Store/display backtraces with blocks.Robin Watts
If built with MEMENTO_DETAILS (on by default), we store the backtrace on every event that affects a block. Memento_details(address) will display the events that affected a block (typically malloc, {realloc}*, free), including the backtrace at each point. Windows and linux use different mechanisms for this. Windows loads a DLL and calls windows specific functions - no extra libraries are required. Linux also loads a shared object (libbacktrace.so). This is not present on all platforms, so on platforms where it is not available we just get addresses. These can be converted using addr2line (unless ASLR is enabled). In order for linux to be able to load libbacktrace.so we link in libdl. If this is not available, define HAVE_LIBDL=no when building the memento target.
2016-03-07Memento: Store callstacks for events.Robin Watts
Add Memento_info(address) that will show the details of a block (callstacks when it was allocatd, realloced, freed etc). This works on MSVC and GNUC using two different methods.
2016-03-03Memento: Speed improvements.Robin Watts
Avoid searching the linked list of blocks in order to remove a block by moving to a doubly linked list. This can be done without increasing the amount of memory in use by making better use of the 'parent' pointer that is only used when displaying nested blocks. Also store magic values in the 'child' and 'sibling' pointers (again only used when displaying nested blocks) so that we can quickly verify that a block is real before doing too much with it. Those changes drastically reduce the time required for MEMENTO_LEAKONLY runs (now the same order of magnitude as non memento runs). Normal memento runs are still very slow when the numbers of blocks increase due to the paranoid checking taking time. To ameliorate this a bit, we try 2 other things. Firstly, we optimise the searching of blocks by making use of int aligned tests. This still doesn't make much difference. Secondly, we introduce a new mechanism for the 'paranoia' levels. If a negative number is given for the paranoia level (say -n) then we first perform our overwrite checks after n events. We next test after 2n events, then 4n, then 8n etc. The new default paranoia level is set to be -1024. This makes a huge difference, and brings normal memento runs down to be comparable with debug runs.
2016-03-02js: Add PDF resource and page functions.Tor Andersson