Commit Graph

4570 Commits

Author SHA1 Message Date
Garret Rieger 0be9fea0a9 [subset] Add comment to os2UnicodeRangesSorted. 2018-02-26 16:15:09 -08:00
Garret Rieger e20ab71d12 [subset] Fix incorrect index. 2018-02-26 16:13:10 -08:00
Garret Rieger 074b5a29a1 [subset] Add special case handling of bit 57 in os2 ulUnicodeRange. 2018-02-26 16:11:24 -08:00
Garret Rieger f757757eda [subset] Add cmake build def for test-unicode-ranges. 2018-02-26 16:00:33 -08:00
Garret Rieger f82f2a3e50 [subset] Rename hb-os2-unicode-ranges.cc to test-unicode-ranges.cc. 2018-02-26 16:00:33 -08:00
Garret Rieger 4014555ca0 [subset] set ulUnicodeRange[] in os2. 2018-02-26 16:00:33 -08:00
Garret Rieger a570142d0c [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper methods and tests. 2018-02-26 16:00:33 -08:00
Garret Rieger 8e81799b32 [subset] Add hb-ot-os2-unicode-ranges.hh, a map of os2 unicode ranges. 2018-02-26 16:00:33 -08:00
Ebrahim Byagowi 6c844ae8e8
[dev-run] show images using iTerm2 images feature 2018-02-26 23:04:27 +03:30
Behdad Esfahbod 28c4245e9f [aat/ankr] Define Anchor struct 2018-02-26 01:10:42 -08:00
Behdad Esfahbod e347fb908b Minor 2018-02-26 01:08:50 -08:00
Behdad Esfahbod 05fbd14e71 [aat/ankr] Minor
DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size structs
we want DEFINE_SIZE_STATIC.
2018-02-26 01:04:16 -08:00
Behdad Esfahbod f90cd9b1f5 [aat/ankr] Hook up Lookup table 2018-02-26 01:03:23 -08:00
Behdad Esfahbod c36598450e [aat/ankr] Simplify 2018-02-26 00:57:07 -08:00
Behdad Esfahbod fa3a69e233 [aat/trak] Simplify sanitize() 2018-02-26 00:32:11 -08:00
Behdad Esfahbod f0bc6c0992 [aat/trak] Clean up
We always just used "unsigned int" for counter values. There's
no use for uint16_t outside of a struct.

Also, no need for explict casting where implicit does.
2018-02-26 00:18:17 -08:00
Ebrahim Byagowi bb82f01383 [aat] trak sanitization 2018-02-26 00:15:26 -08:00
Ebrahim Byagowi becb1d9eea
[aat] minor
Ops, this was done for testing
2018-02-26 11:29:48 +03:30
Behdad Esfahbod df1c7d5b60 Minor 2018-02-25 19:06:25 -08:00
Behdad Esfahbod 6dd46fa598 [aat/trak] Minor
Maybe we should make DEFINE_* make structs uncopyable.
2018-02-25 18:54:52 -08:00
Ebrahim Byagowi ae14dd0fb0 [aat] Implement ankr 2018-02-25 17:01:39 -08:00
Behdad Esfahbod 551fa2d200 [BASE] Minor 2018-02-25 16:32:17 -08:00
Behdad Esfahbod 05699fd996 Merge remote-tracking branch 'eroux/add-base' 2018-02-24 12:03:26 -08:00
Ebrahim Byagowi cd28eb9f5d
Add -Werror=unused-function check to Travis (#832) 2018-02-24 14:17:54 +03:30
Ebrahim Byagowi 1ab16f4556
[aat] Implement trak logic (#816) 2018-02-24 12:49:42 +03:30
Behdad Esfahbod b91e8da36e Include hb-version.h in git (#825) 2018-02-24 10:21:17 +03:30
Rod Sheeter 2e3ee489f8 [subset] format tweak, doc string 2018-02-23 18:18:54 -08:00
Rod Sheeter d78393b554 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints 2018-02-23 17:53:26 -08:00
Rod Sheeter 1454d82a9d [subset] keep glyph trim separate of more general get_offset 2018-02-23 17:49:23 -08:00
Rod Sheeter 0ac8c0c1e6 [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about 2018-02-23 17:43:00 -08:00
Behdad Esfahbod dc5c7927e7 [subset] Caclculate head table checksum adjustment
Test still fails, because we do not serialize tables in the same
order that fonttools subsetter does.
2018-02-23 16:59:53 -08:00
Garret Rieger 7e5e1feb66
Merge pull request #828 from googlefonts/mem-fixes
[subset] Fix several memory leaks in subsetting.
2018-02-23 17:59:08 -07:00
Behdad Esfahbod ec2538c880 [subset] Fix checksum calc out-of-bounds access 2018-02-23 15:51:26 -08:00
Garret Rieger 99967e21c6 [subset] Fix memory leak in hb-subset-glyf. 2018-02-23 15:45:45 -08:00
Garret Rieger e61f360dc8 [subset] Fix memory leak in hb-subset-plan. 2018-02-23 15:44:21 -08:00
Garret Rieger 66b0a39079 [subset] Fix memory leak in hb-subset. 2018-02-23 15:41:52 -08:00
Garret Rieger 0fb8a5ce19 [subset] Fix memory leak in cmap subsetting. 2018-02-23 15:37:43 -08:00
Garret Rieger 4665aaa193 [subset] Fix memory leak in hmtx subsetting. 2018-02-23 15:36:14 -08:00
Garret Rieger 5a36b55fba [subset] Fix memory leak in subset face destroy. 2018-02-23 15:30:14 -08:00
Ben Boeckel d38f37b2e3 autoconf: provide a harfbuzz-config for use from CMake (#822) 2018-02-24 01:25:53 +03:30
Behdad Esfahbod e0939d811f Clean up check-defs and check-symbols (#821)
Also, call c++filt on their results.

Also build and fix and check harfbuzz-gobject.def

Also changes harfbuzz-gobject to distribute generated enum sources.
2018-02-24 00:49:34 +03:30
Rod Sheeter 9bd6d25254 [subset] clone trim logic from fonttools glyf handling 2018-02-23 13:05:58 -08:00
Behdad Esfahbod c2e4713b5b [hdmx] Fix sanitize() 2018-02-23 10:45:03 -08:00
Behdad Esfahbod 84d4bb91ce [hdmx] Minor 2018-02-23 10:38:35 -08:00
Behdad Esfahbod cf7a6e520e [hdmx] Move DeviceRecord to toplevel again
More readable.
2018-02-23 10:34:26 -08:00
Garret Rieger 96d7805a92 [subset] More complete sanitization implementation for hdmx. 2018-02-22 16:48:28 -08:00
Garret Rieger c02532a3d2 [subset] Formatting and comments in hdmx. 2018-02-22 16:40:50 -08:00
Garret Rieger 6b372f439b [subset] In hb-ot-hdmx-table, s/glyf/hdmx. 2018-02-22 15:42:39 -08:00
Garret Rieger ec302ad5bd [subset] Fail subset if a table fails to sanitize. 2018-02-22 15:42:39 -08:00
Garret Rieger aa4aa2353c [subset] Enable hdmx subsetting. 2018-02-22 15:42:39 -08:00
Garret Rieger bd18b6adf8 [subset] Move DeviceRecord inside of hdmx. 2018-02-22 15:42:39 -08:00
Garret Rieger 6704cded65 [subset] Add hdmx subsetting implementation. 2018-02-22 15:42:39 -08:00
Garret Rieger 84b68e5886 [subset] In hdmx serialize set the correct value of sizeDeviceRecord. 2018-02-22 15:42:39 -08:00
Garret Rieger dddf44279f [subset] When serializing a DeviceRecord in hdmx pad to make 32 bit aligned. 2018-02-22 15:42:39 -08:00
Garret Rieger ab7a8f3b74 [subset] Begin implementing serialize for hdmx. 2018-02-22 15:42:39 -08:00
Garret Rieger fe42862ab3 [subset] Sketch out a basic hb-ot-hdmx.hh. 2018-02-22 15:42:39 -08:00
Ebrahim Byagowi a6bd6bcee0
[dev-run] minor 2018-02-22 16:52:56 +03:30
Ebrahim Byagowi fa13a04cf3
[dev-run] Add gdb/lldb shortcuts 2018-02-22 16:48:03 +03:30
Rod Sheeter 4f07437dfe [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected 2018-02-21 22:23:05 -08:00
Rod Sheeter 2d0265242b [subset] keep the result of _subset 2018-02-21 17:04:24 -08:00
Behdad Esfahbod 4fb97be78d Add two more ragel-generated headers
Fixes https://github.com/harfbuzz/harfbuzz/issues/817
2018-02-21 14:38:16 -08:00
Rod Sheeter 74e0c13a4a [subset] drop hint tables if so flagged. Still need to dump glyf instructions. 2018-02-21 11:19:18 -08:00
Rod Sheeter 0bd100e144 [subset] add --hinting flag 2018-02-21 10:34:00 -08:00
Rod Sheeter 7ecca8c0a8 [subset] keep the result of _subset 2018-02-21 09:42:46 -08:00
Behdad Esfahbod eada749e46 Use HB_SET_VALUE_INVALID consistently 2018-02-21 00:35:47 -08:00
Garret Rieger 2cc845f311 [subset] fix calculation of range shiftz. Should be 16 * len - searchRange not 16 * (len - searchRange). 2018-02-20 18:36:11 -08:00
Garret Rieger 8e614ade5a [subset] Reverse table order for font serialization to match what OTS expects. 2018-02-20 18:36:11 -08:00
Garret Rieger a998eeee4a [subset] sanity check glyph data writes during glyph subsetting to ensure they are inbounds. 2018-02-20 18:01:16 -08:00
Garret Rieger 0ab73e5942 [subset] Sanity check that loca writes are inbounds. 2018-02-20 18:01:16 -08:00
Garret Rieger 73e20ec6e9
Merge pull request #812 from googlefonts/cleanup
Clean up of glyf subsetting.
2018-02-20 17:34:59 -07:00
Behdad Esfahbod 6ae4013f2e [aat] Cosmetic touch-ups to trak table 2018-02-20 15:02:25 -08:00
Behdad Esfahbod abc82b493e Add Ragel-generated files to git
I know it's bad form; I know I've said no to this multiple times...
But this is part of an experiment to see if we can make rolling HarfBuzz
into Chrome much faster. That will give us a lot more testing exposure
that currently Chrome does.

Doing this while those files are still considered ignored by our
gitignore rules; will see how that flies.
2018-02-20 14:36:14 -08:00
Garret Rieger 69e443b254 [subset] Switch to hb_blob_copy_writable_or_fail in glyf subsetting. 2018-02-20 14:29:21 -08:00
Garret Rieger e3e0ac9823 [subset] Move glyf subsetting code into hb-ot-glyf-table.hh 2018-02-20 14:07:40 -08:00
Behdad Esfahbod d1f16fce96 Don't use %zu
Some of our bots / compilers don't like it. Wasn't caught by bots because this
is only in debug code.

825ad378e0
2018-02-20 10:32:09 -08:00
Ebrahim Byagowi c7e834a2fc
[dev-run] minor 2018-02-20 17:59:04 +03:30
Ebrahim Byagowi 975c35214f
[dev-run] Support autotools builds 2018-02-20 17:49:29 +03:30
Dominik Röttsches 25136d9b72 Use %zu format specifier for size_t to fix cross platform build
Fixes Chromium Android builds, compare
https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/491787
2018-02-20 14:01:15 +02:00
Ebrahim Byagowi a64eacd8a6 [aat] First dig on 'trak' 2018-02-19 13:05:03 -08:00
Behdad Esfahbod 0bff6991de Ugh. Really fix build. 2018-02-19 11:51:25 -08:00
Behdad Esfahbod 4fcbd22b18 Fix build after previous commit 2018-02-19 11:49:25 -08:00
Behdad Esfahbod 0bbf90ded0 [subset] Don't include hb-subset.h from hb.h 2018-02-19 11:39:07 -08:00
Ebrahim Byagowi fde04777d1
Check availability of entr instead now that this works with it 2018-02-19 20:00:07 +03:30
Behdad Esfahbod e2d2d81984 Limit how much work sanitize() can do
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022
2018-02-18 17:28:53 -08:00
Behdad Esfahbod 7033fe5877 [aat] Minor 2018-02-18 17:12:04 -08:00
Behdad Esfahbod 6fa690c75a Fix debug build
Context needs to be called 'c'. The TRACE_* rely on that.
2018-02-18 16:27:59 -08:00
Behdad Esfahbod 05d1e77db8 [aat] Silence warning 2018-02-18 16:26:04 -08:00
Behdad Esfahbod 1c50a88623 Readjust mark attachment heuristic a bit more
Previously adjusted logic could fail if nothing around was ligated,
and something moved.  This should take care of that.

CC https://github.com/harfbuzz/harfbuzz/issues/740
2018-02-18 15:58:09 -08:00
Ebrahim Byagowi 79756c9039
[aat] First dig on 'kerx' (#704) 2018-02-19 03:17:44 +03:30
Behdad Esfahbod 279c70a5b3
Merge pull request #796 from ebraminio/dev-run
Add a continuous builder using fswatch
2018-02-18 14:04:33 -08:00
Ebrahim Byagowi 89b82814b6 Add a continuous builder using fswatch 2018-02-18 23:56:00 +03:30
Behdad Esfahbod 97a7110215 Fix BitScanForward() usage
Should fix Win64 bot.
2018-02-18 10:50:24 -08:00
Behdad Esfahbod fe8f40a418
Merge branch 'master' into bitops 2018-02-18 10:45:33 -08:00
David Corbett 21646cc4a6 Do not mark the first glyph as unsafe to break
Fixes #791.
2018-02-17 13:35:34 -08:00
Behdad Esfahbod e5ab34fd3a Misc fixes
Should bring bag djgpp bot.
2018-02-16 18:29:29 -08:00
Garret Rieger 2130392dcc [subset] Add support for updating reference gids in components to their new values. 2018-02-16 18:29:29 -08:00
Garret Rieger 49544eb860 [subset] Refactor composite glyf iteration code into an Iterator outside of the accelerator. 2018-02-16 18:29:29 -08:00
Garret Rieger dc6d67df13 [subset] Use gids_to_retain_sorted to produce old gid -> new gid mapping since it now has the more complete set. 2018-02-16 18:29:29 -08:00
Garret Rieger dcac9fe964 [subset] Use complex glyph closure to populate gids_to_retain_sorted. 2018-02-16 18:29:29 -08:00
Garret Rieger 58a54c9d4f [subset] add constant to get_composite and in_table methods in hb-ot-glyf-table 2018-02-16 18:29:29 -08:00
Garret Rieger 73e1434814 [subset] Add a DFS search to produce a closure of composite glyphs. 2018-02-16 18:29:29 -08:00
Garret Rieger d368414143 [subset] add helper methods to glyf accelerator for reading composite glyph information. 2018-02-16 18:29:29 -08:00
Behdad Esfahbod cd11107bb4 Another bitops fallback fix
I'm confident that all bugs are hashed out now.
2018-02-16 18:28:58 -08:00
Behdad Esfahbod 4e517ecb6b Another bitops fallback impl fix 2018-02-16 18:20:12 -08:00
Behdad Esfahbod f18b9fbf65 [set] Implement iteration using bitop intrinsics 2018-02-16 18:14:41 -08:00
Behdad Esfahbod 6a91a2eb04 Fix wide bitops implemenetation 2018-02-16 17:49:41 -08:00
Behdad Esfahbod d25c3e69e9 [set] Readjust parameters 2018-02-16 17:45:09 -08:00
Behdad Esfahbod 6d5c0bf8b1 Fix bitops fallback impl 2018-02-16 17:33:26 -08:00
Behdad Esfahbod 82eb1dac16 Flesh out other bit ops some more for 128bit as well 2018-02-16 16:52:09 -08:00
Behdad Esfahbod 864a2dddae Clean up bit functions
Compile all code-paths possible, to better catch errors.
Also enable MSVC ones on mingw which seems to support them.
2018-02-16 16:09:38 -08:00
Behdad Esfahbod 978ace6fbb Improve _hb_popcount()
Support 128bit type.
2018-02-16 16:08:45 -08:00
Behdad Esfahbod 7b5ce74047 Fix warnings 2018-02-16 15:38:02 -08:00
rsheeter 926db87455
Merge pull request #792 from googlefonts/master
Support more tables in subsetter
2018-02-16 15:27:29 -08:00
Arkady Shapkin d37310ac5d Remove checking macros __OPTIMIZE__ for MSVC
Visual C++ compiler doesn't define macros __OPTIMIZE__  when optimizations enabled
2018-02-16 12:40:11 -08:00
Rod Sheeter be0a01a676 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz 2018-02-16 06:01:41 -08:00
Ebrahim Byagowi 139c9928f6
Fix hb-private.hh compile issue 2018-02-16 13:27:26 +03:30
Arkady Shapkin 6c10328eb8 Use _BitScanForward and _BitScanReverse on MSVC 2018-02-15 14:31:25 -08:00
Rod Sheeter 7acaa3b781 [subset] apparently C99 is too much to ask in 2018 2018-02-15 14:28:29 -08:00
Rod Sheeter b1740106a9 [subset] fix format specifier for size_t 2018-02-15 13:55:21 -08:00
Rod Sheeter e00c37aaae [subset] fix no matching function MIN in djgpp 2018-02-15 12:53:52 -08:00
Rod Sheeter 0758cbc4c2 [subset] correct bug introduced to get_advance 2018-02-15 11:29:01 -08:00
Rod Sheeter 3fd11f4397 [subset] remove unused decl 2018-02-15 11:15:12 -08:00
Rod Sheeter 0e088a63d1 [subset] hmtx space bracket. authors++ 2018-02-14 21:11:45 -08:00
Rod Sheeter 1725c35da0 [subset] cmap space bracket 2018-02-14 19:36:33 -08:00
Rod Sheeter e158739bfb [subset] space bracket 2018-02-14 19:22:37 -08:00
Rod Sheeter 2d6b1e2af7 [subset] maxp copy writeable fn 2018-02-14 19:14:01 -08:00
Rod Sheeter 1efecd965f [subset] hmtx use copy writeable fn instead of direct memory 2018-02-14 19:05:41 -08:00
Behdad Esfahbod b1bd0b5f50 [subset] Minor 2018-02-14 18:50:19 -08:00
Behdad Esfahbod 5ae6526ef4 [subset] Merge remote-tracking branch 'googlefonts/master' 2018-02-14 18:42:32 -08:00
Garret Rieger 0775bc0f7a [subset] Fix hhea subsetting and clean up some memory leaks. 2018-02-14 16:37:35 -08:00
Garret Rieger b56c9384bc [subset] Add missing face reference in hb-subset-plan plus ensure all struct members are cleaned up on destroy. 2018-02-14 16:05:39 -08:00
Garret Rieger e330ef3711 [subset] Restore hb_face_data_destroy to be internal. 2018-02-14 15:57:18 -08:00
Garret Rieger 3ab7d2649b [subset] Fix memory leak in hb-ot-{maxp,os2}. Plus some formatting. 2018-02-14 15:48:57 -08:00
Behdad Esfahbod 2903b2f357 Another linker tweaking
Trying to fix this warning:
cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C

Let's see what the clang bots think of it.
2018-02-14 15:46:27 -08:00
Behdad Esfahbod e1f1f96577 [set] Tune size again
Switch from a 128+64 hierarchy, to 32+32. New page size is 1024.
This should make set iteration faster, without affecting other op
performances much.
2018-02-14 15:44:48 -08:00
Rod Sheeter 66e282df32 [subset] remove TODO that was already done 2018-02-14 15:31:13 -08:00
Rod Sheeter 4696624ad9 [subset] maxp wrong int type, note to use copy_writable_or_fail 2018-02-14 15:30:49 -08:00
Rod Sheeter 3ed70e5e64 [subset] return bool not hb_bool_t from table::subset 2018-02-14 15:24:49 -08:00
Rod Sheeter 88d56e241b [subset] Use a supplier instead of memcpy and fix a few unnecessary {}s for cmap 2018-02-14 15:20:43 -08:00
Rod Sheeter 42a80f00d5 [subset] add free 2018-02-14 15:04:35 -08:00
Rod Sheeter d463e9f6b5 [subset] Give Behdad credit again 2018-02-14 15:04:15 -08:00
Rod Sheeter fa87770372 [subset] First pass at hmtx 2018-02-14 14:53:10 -08:00
Behdad Esfahbod ccae99fdad Another try 2018-02-14 11:12:09 -08:00
Behdad Esfahbod 8c3612af65 Tweak Makefile some more 2018-02-14 10:57:34 -08:00
Behdad Esfahbod d594f947b6 [subset] Allow linking to libstdc++
We want to use it.
2018-02-14 10:55:25 -08:00
Rod Sheeter a0fe3011ba copy all cmap groups at once 2018-02-14 10:52:41 -08:00
Garret Rieger d008b62887 Merge remote-tracking branch 'upstream/master' into fixed 2018-02-14 10:38:52 -08:00
Garret Rieger 89f17e3965 [subset] capitalize dsig. 2018-02-14 10:19:50 -08:00
Garret Rieger df6d780355 [subset] Extract maxp subsetting into hb-ot-maxp-table. 2018-02-14 10:19:50 -08:00
Garret Rieger 343dfe8965 [subset] white and add inline in hb-ot-cmap-table. 2018-02-14 10:19:50 -08:00