Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Also remove redundant assignments.
Fixes http://bugs.ghostscript.com/show_bug.cgi?id=695968
|
|
Thanks to Fred Ross-Perry.
|
|
platform/java and platform/android are reorganized:
platform/java
The new JNI Java classes, mupdf_native.{c,h}, Makefile and Makejar.
platform/java/example
The example desktop viewer classes.
platform/android/viewer
The original demo viewer.
ndk-build is used to build libmupdf_java.so,
making reference to mupdf_native.{c,h} in platform/java.
|
|
|
|
|
|
|
|
This avoids the displaylist device not playing back space glyphs.
|
|
In particular for html docs we were getting the refcount wrong,
causing us to leak on closedown.
|
|
If a "word" of HTML is split into several fragments by the
string walker (due to glyphs not being available in the same font)
then we'd previously have walked too much of the string when
pulling glyphs out of the harfbuzz buffer.
Only walk as much as we should.
|
|
|
|
This is stated in table 3.22 in PDF Reference 1.7.
Fixes valgrind errors for SIGABRT-090214-045131-116.pdf from bug 695040.
|
|
Combining marks were being offset in the wrong direction vertically.
|
|
|
|
|
|
|
|
|
|
Reintroduce fz_load_jpeg() (previously removed in 12c1466) improved with:
* application agnostic memory handler support from 6a8abce
* colorspace context from 93bd1ff
* resolution detection from 4dc6cbe
|
|
|
|
* Use a better 4-bit fallback palette (use vga palette as
indicated by variable name instead of 16 color web palette)
* Determine if existing palette entries are grayscale and if so
use a grayscale palette instead of the vga or web palette
* Extend the web palette with black entries to make it eaiser
to copy from.
|
|
|
|
|
|
|
|
* The component bitmasks in the header are only valid for
bitfields compression
* The extra component bitmasks are only present if using
bitfields compression and for 16-/32-bit images if not
already present in header
|
|
|
|
The rle8 encoding already uses the same comparison
|
|
|
|
gcc whines about strict-aliasing rules. Tweak the code to avoid
them.
Short version = gcc dislikes accessing the same memory
through different typed pointers unless they are void * or char *.
|
|
Tell Memento to treat all blocks allocated within given harfbuzz
calls as being leaks.
|
|
Harfbuzz allocates blocks that it keeps around as statics.
There are a finite number of these, and they are never freed
(at least not in the build we use). Having Memento report
them as leaks is a pain.
So we extend Memento so that we can label blocks as being
leaks, and thus never have to be bothered by them.
|
|
|
|
This was causing blocks to be free'd rather than fz_free'd.
|
|
Avoid library warnings when including libfonts.
|
|
|
|
If another routine 'wraps' memento blocks (such as a chunk allocator
or the 'trace' allocator in mudraw), then the address passed to
Memento_label, Memento_takeRef etc, can be inside the block rather
than at the start of the block.
Update Memento to cope with this.
|
|
|
|
|
|
Introduce a 'generic' PCL setting (basically ljet4 with custom
page sizes for now).
Ensure we send explicit sizes before the custom page sizes, and
don't use Ricoh page sizes unless we are allowed to.
|
|
Output uses adaptive compression mode.
|
|
|
|
|
|
Now covers non-ARM arch's too, and both load/stores.
|
|
Fix do_threshold_1 and implement do_threshold_4.
do_threshold_1 checks for white and shortcuts the work if it
can.
There are 2 ARM variants of do_threshold_4. One for ARMs that
support unaligned loads, and one for the (rare configurations)
that don't. The former checks for white and shortcuts the work.
|
|
Both C and ARM versions. ARM version is noticably faster than C
version.
|
|
I missed a font while reworking the generate.bat font generation.
|
|
(And presumably other platforms).
.align is broken - on some archs it wants the padding size, on others
(like ARM) it wants log2(padding size). Use .balign which is consistent.
Avoid using @ or # as these are comment chars on some archs.
Use the STT_OBJECT form instead.
|
|
|
|
pdf.createObject() will create a new (blank) object and return an indirect
reference to it. This wraps pdf_create_object.
ref.writeObject(obj) will update the object pointed to. This wraps
pdf_update_object.
|