Age | Commit message (Collapse) | Author |
|
file fails to open.
Removal of null checks for object freeing in interface to mupdf.
|
|
Currently, dev_bbox creates a union of all bounding boxes of paths,
text and images. If any of these are however clipped away or inside
a tile, they should be ignored.
|
|
fz_free_device usually doesn't throw (throwing in clean-up code is
quite pointless anyway) but freeing the text extraction device might
do so under memory pressure. This patch catches any potential
exception to guarantee a proper clean-up.
|
|
In multiple places, between acquiring and releasing the FREETYPE lock,
exceptions may be thrown which aren't caught in order to properly
release the lock. This patch introduces the necessary fz_try/fz_always/
fz_catch invocations to prevent a potential deadlock in these situations.
RJW: Also fix another problem pointed out by zeniko. Thanks!
|
|
Negative xstep or ysteps cause problems.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Skip over successive whitespace in search string.
Make android use text_search.c
|
|
|
|
Fix from zeniko.
|
|
|
|
|
|
The openjpeg stream reading code is supposed to return -1 to
mean 'EOF'. Update our implementation in line with this.
This stops samples_mupdf_001/402.pdf.SIGSEGV.2e4.2672 going into
an infinite loop.
|
|
|
|
|
|
|
|
Android app was still thinking that we had only one fz_device_rgb rather
than one per context.
Android app had a typo in resulting in searching ending in an infinite
loop.
Text search failed to search outside the first block of each page.
|
|
|
|
|
|
This should (pretty much) give us enough to write a mupdftoraster
equivalent of gstoraster.
|
|
To prepare for color management, we have to make the device colorspaces
per-context and able to be overridden by users.
|
|
|
|
|
|
Remove stray win32 changes. Update indentation style.
|
|
|
|
Issues exist though in the
xaml WebView object used in the windows UI.
|
|
Now works with ARM, x64, Win32 plus Memento
|
|
Lots of issues to resolve still and plenty of requirements to do but it is a start.
|
|
|
|
No font support (just font names are sent through).
No group support.
No shading support.
No image mask support.
Line art, text position/size, bitmaps, clipping all seem to work
though.
|
|
Allow us to get an image as a png in a buffer.
|
|
Pass stroke state into fz_bound_text to allow for stroked text.
Simplifies some calling code.
Add consts to clarify the meanings of the calls.
|
|
|
|
|
|
|
|
Now can open jpeg/png/tiff files within mupdf.
|
|
|
|
One for the raw span extraction pass, one for paragraph sorting,
and another for HTML output.
|
|
|
|
|
|
2 more memory problems pointed out by mhfan - many thanks.
In the text device, run through the line height list to it's length,
not to it's capacity.
In the X11 image code, when copying data unchanged, copy whole ints,
not just the first quarter of the bytes.
|
|
Following up on a report from a potential customer, fix various places
in mupdf.c where we were leaking memory (devices not freed, context
not properly freed etc).
In order to track this down, I added a Memento build - just do:
ndk-build MEMENTO=1
when building. This only checks for leaks, not for memory overwrites
by default as it uses MEMENTO_LEAKONLY to avoid any possibility of the
android kernel killing stuff for being too slow or using too much
memory.
|
|
Thanks to mhfan for the reports.
|
|
Rename fz_new_output_buffer to be fz_new_output_with_buffer.
Rename fz_new_output_file to be fz_new_output_with_file.
This is more consistent with other functions such as
fz_new_pixmap_with_data.
|
|
When the store fills up, the existing code throws away items to
make room. Due to a silly oversight (not updating the 'size' after
each round of evictions) it keeps throwing away repeatedly until it
fails.
Fix that here. Should make the store more efficient.
|
|
Fix race condition in the store. When storing an item, we
immediately put it into the hash (thus getting our existence
check). We then check and try to free enough space for it in
the budget. If we cannot free enough, we remove the item
from the hash. The race condition comes if someone else finds
it in the hash in the meantime.
To fix this, we update all 'finds' of things in the hash to
move it to the head of the LRU chain (regardless of whether it
was in the chain before or not). We only remove it from the
hash in the 'failed-to-fit-in-the-budget' case if it's not in the
chain already.
Also, we fix a bug in the "failed to fit" removal case where we
were failing to realise that the the pos pointer was not valid
any more.
In the course of tracking this bug down various debug functions
were improved. These are committed here too.
|