summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-25Fix for pages being repeated when running on Android Honeycomb.Matt Holgate
Fixes bug #695191 - Mupdf Build49/armv7a & Android 3.1: cycles through subset of pages & page scrubber The problem here was that in Honeycomb, various bitmap operations (including drawing via JNI) do not update the bitmap generation count. When hardware acceleration is enabled, this means that the underlying GL layer is not aware that the bitmap has changed, and ends up reusing old textures. To workaround this, we erase the bitmap before drawing the page. Erase appears to be the only operation I could find (after pouring through the source), which actually increments the generation count. The other option would have been to disable hardware acceleration, but that was far less ideal.
2014-06-23Prevent the creation/destruction of the fz_cookies from trampling the ↵Matt Holgate
env/clazz pointers in globals. The env/clazz pointers are stashed in the globals structure so that they can be accessed by callback functions in mupdf.c (such as bufferStreamSeek()). The intention is that only one thread (i.e. the AsyncTask background thread) reads/writes these stashed pointers. Because cookies are created/destroyed in the main thread, we add a new version of get_globals() which doesn't trample these pointers.
2014-06-23Fix for bug #695229 - open document from byte array doesn't work, but saving ↵Matt Holgate
to file and open from file works Patch was supplied by gong_su@hotmail.com. Thanks!
2014-06-23Fix crash when dismissing 'Cannot open document' dialog with back button, ↵Matt Holgate
then pressing back button again. I've also added an onCancel() handler, so that the back button only needs to be pressed once to return to the file picker view. Spotted while looking at bug #693719 - Attached PDF file does not display (edit)
2014-06-20Ignore .DS_Store files generated by the Mac.Matt Holgate
2014-06-20Improvement which should hopefully help with bug #693607 - MupdfActivity ↵Matt Holgate
crash when rotating the device. When cancelling a render async task, we now wait for it to actually finish before continuing. The benefit of this is that we should be able to guarantee that its Bitmap becomes eligible for GC before we continue to create any new bitmaps. This should hopefully help with the OOM errors seen when rotating the device and trying to create the new bitmaps. To prevent the UI thread from being blocked for too long while we're waiting for the async task to finish, we use a fz_cookie and set the 'abort' flag to request the render be stopped as soon as possible.
2014-06-19Fix compiler warning.Matt Holgate
2014-06-18Add annotation to fix building from Eclipse.Matt Holgate
2014-06-18Fix bug #695132: MuPDF Library throwing sporadic exception on AndroidMatt Holgate
Android sometimes calls the 'getSelectedView()' method of an AdapterView. This can be made to happen more predicatably by enabling the Talkback accessibility feature. Remove the UnsupportedOperationException and just return null, as we the ReaderView does not have the concept of a selected page.
2014-06-18Fix for bug #694405 - iOS Pdf CrashMatt Holgate
If an iOS app uses too much memory, the OS asks it to free up some space. If it doesn't do so in a timely manner, it will get a second warning before being killed by the OS. In other platforms, where malloc() return NULL in OOM, the store scavenger releases memory when mallocs fail. In iOS, mallocs usually never return NULL because the app is killed before this can happen. Therefore, we need to initiate a scavenge from the low memory notification instead. We evict the store to 50% of its current size when a memory warning occurs when it is in the foreground, and 0% when a memory warning occurs whilst it is in the background. Having said this, I didn't manage to get a background warning to occur, presumably because we don't request background execution Therefore, I think in practice the OS just kills the process. However, this will be useful if we ever add background execution.
2014-06-17Fix for bug #694967 - MuPDF crashes after pressing the Back Button while it ↵Matt Holgate
renders a specific PDF Some async tasks were still trying to access the globals pointer, which had been nulled during shutdown, leading to a crash. Check for NULL and return cleanly in this case. Possibly we should also be calling AsyncTask.get() to wait for the tasks to finish, before nulling the global pointer?
2014-06-16Fix memento builds on android.Matt Holgate
2014-06-16Fix a fatal compiler warning when building with the latest version of the ↵Matt Holgate
Android NDK (security issue because a variable is used as a format string with no parameters).
2014-06-10Bump version number to 1.5.Tor Andersson
2014-06-10Fix library/header version error message and makefile dependency.Tor Andersson
2014-06-09Bug 695300: Sanitize draw-device stack handling in error cases.Robin Watts
When throwing an error during fz_alpha_from_gray, the stack depth can get confused. Fix this by moving some more code into the appropriate fz_try(). In the course of fixing this bug, I added some new optional debug code to display the stack level as it runs. This is committed here disabled; just change the appropriate #define in draw-device.c to enable it. Also, add some code to run_xobject, to avoid throwing in an fz_always() clause.
2014-06-09Fix 695300: don't throw exception on invalid reference number.Tor Andersson
Return the null object rather than throwing an exception when parsing indirect object references with negative object numbers. Do range check for object numbers (1 .. length) when object numbers are used instead. Object number 0 is not a valid object number. It must always be 'free'.
2014-05-29Fix 694093: add vertical variant of CJK fallback font.Tor Andersson
Replace the DroidSansFallback TTF files with a TTC that has two fonts: The original and a copy where the OpenType 'vert' substitution lookup has been pre-applied by copying the uniXXXX.vert glyph data to uniXXXX.
2014-05-29fix memory leaks during PDF document creationSimon Bünzli
pdf_create_document leaks the trailer and in pdf-device.c many objects are inserted into dictionaries using pdf_dict_puts and leaked instead of using pdf_dict_puts_drop.
2014-05-29Tolerate zero-sized xref sections...Tor Andersson
...like the one Microsoft Word generates.
2014-05-28Further fix for Bug 695260: Cope with out of memory in fz_draw_end_maskRobin Watts
If we hit an out of memory error in fz_draw_end_mask, then pop the stack, and rethrow. Ensure that the generic device code catches this error and sets the error_depth to 1 so that the final pop is ignored.
2014-05-28Save a bookmark before jumping when using the 'g' command.Tor Andersson
2014-05-27Fix 693517: Support /SMask/Matte preblended images.Tor Andersson
2014-05-27Fix 693494: Support media buttons for navigation on X11.Tor Andersson
2014-05-27Fix 694518: Implement continuous scrolling with keyboard.Sebastian Neuser
2014-05-27Set a faster default transition.Tor Andersson
2014-05-27Fix 694579: Implement "zoom to fit page".Sebastian Neuser
Add a new function pdfapp_autozoom to fit the page to the window by comparing the aspect ratios of the page and the window to choose whether to fit horizontally or vertically.
2014-05-27Bug 695260: Fix error handling in do_xobjectRobin Watts
Various functions (such as fz_begin_group) handle errors internally by use of the error_depth parameter. This means that if we call them, we MUST ensure that we call the appropriate closing function. Similarly, if we don't call them, we should NOT call the closing function. In order to ensure we do this correctly, we introduce a cleanup_state variable that says which ones we tried to call. This cures the original bug.
2014-05-26Fix 695261: separate TM and CTM in outline extraction and stroking steps.Tor Andersson
We used to extract the outline using the combined TM*CTM matrix and use the identity transform for stroking, thus ending up with the wrong line width. If we instead extract using the TM and then stroke with the CTM we get the correct results.
2014-05-23Fix 695041: add special fast case for 8bpp TIFF predictor.Tor Andersson
2014-05-23Add ftdebug.c to thirdparty freetype build.Tor Andersson
Allows compilation with -DFT_DEBUG_LEVEL_TRACE to track down buggy fonts.
2014-05-23Bug 695183: Inflate large buffers at a time for speed.Robin Watts
When I changed the stream implementations to use implementation specific buffers, rather than a generic public one in every fz_stream, I changed fz_read_byte to only get a single byte at a time. I noted at the time that the underlying stream was free to decode larger blocks if it wanted too, but I forgot to actually do this for the flate decoder. Fixing this here should solve the speed issues.
2014-05-22Flush pending text on a change of CTM.Robin Watts
Without this, comparefiles/Bug695086 renders the barcode test upside down.
2014-05-22Fix windows VS builds.Robin Watts
Fix broken solution file and add project entries for new files.
2014-05-22Fix 695222: Treat non-breaking space (U+00A0) as white space for search.Tor Andersson
2014-05-22Fix 695247: Use exponential realloc pattern and qsort for huge paths.Tor Andersson
Grow the edge list using an exponential realloc pattern. Use qsort for huge paths and only fall back to the simple shell sort for small paths.
2014-05-22Load the usecmap directives recursively for builtin CMaps.Tor Andersson
Fixes bug introduced in commit 1679c1e7a89ae62260fd84ce55c6bef376c6e6ba: Optimize UniXXX CMap files.
2014-05-20Build libcurl as part of the 'make third' rule...Tor Andersson
...without adding it to the standard list of required third party dependencies.
2014-05-19Remove jmorecfg.h from includes.Chris Liddell
2014-05-19Add an application agnostic memory handler for libjpegChris Liddell
This adds a custom memory management layer between libjpeg and the calling app - in such a way that the code can be shared between mupdf and Ghostscript/PDL.
2014-05-19Fix 694952: Limit Type 3 font glyph bbox size.Tor Andersson
Don't let a glyph's bbox be too much bigger than the font bbox.
2014-05-19Make unresolvable link destinations warnings instead of errors.Tor Andersson
See bug 693314 (file Z23-04.pdf) for an example file.
2014-05-15Fix 695101 and 694114: Use the correct numbers to validate the encryption ↵Tor Andersson
key length. This reverts commit b1ed116091b790223a976eca2381da2875341e10. The key length for V==2 must be 40 <= length <= 128. The key length for V==4 is not taken from the /Length entry.
2014-05-13Use code space ranges when remapping ToUnicode CMaps.Tor Andersson
2014-05-13Fix signedness in cmap interface.Tor Andersson
2014-05-12better buffer underflow protection for ba15a8cd3238a3a3c098ad8b7d96cb0e405fc26fSimon Bünzli
2014-05-12correctly bound image mask clippings in bbox deviceSimon Bünzli
Same as for fz_bbox_fill_image_mask, fz_bbox_clip_image_mask must transform the unit rectangle to get the bounding bbox.
2014-05-12prevent indeterminacy by uninitialized variablesSimon Bünzli
There are two issues where variables may be used unitialized: * extract_exif_resolution fails to set xres and yres for JPEG images if there's no valid resolution unit (mainly affects XPS documents) * xps_measure_font_glyph uses hadv and vadv unitialized if the glyph id isn't valid (i.e. if FT_Get_Advance fails)
2014-05-12Fix 695156: Display metadata with SetDlgItemTextW.Tor Andersson
Convert from UTF-8 to UCS-2 to display unicode text properly.
2014-05-11Add cmap cleaning scripts.Tor Andersson
One to write a CMap out in expanded form ready for text processing tools. Another to write a CMap out as compactly as possible. The output is not in proper CMap format and can only be parsed by MuPDF.