|
d80e0974
|
2023-12-15T22:49:46
|
|
[repacker] Increase repacker max rounds to 32.
Found an example font that needs the higher limit.
|
|
5b325c0a
|
2023-12-13T15:27:47
|
|
[cff] Fix late sanitize
Last summer I changed sanitizer->check_struct() to only check
the trailing point of the struct on 64bit machines. This works
mostly because offsets are always positive.
Not anymore. Recently we introduced negative offsets in CFF,
and this was causing sanitize() for such structs pass while
the struct's leading edge was out of range.
Fix that.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64859
|
|
df735213
|
2023-12-06T09:50:29
|
|
[instancer-solver] port solver fix (#4519)
* [instancer-solver] port solver fix
from https://github.com/fonttools/fonttools/pull/3374
|
|
bf84135e
|
2023-12-05T11:58:21
|
|
[cff] Support negative offsets
Fixes https://github.com/harfbuzz/harfbuzz/issues/4508
|
|
7160c5b9
|
2023-12-05T20:58:00
|
|
[repacker] add tests for multi-duplication.
Further improve the resolution attempt by pre-emptively raising priority of a duplicated shared node.
|
|
6f64fa75
|
2023-12-05T19:45:16
|
|
[repacker] improve resolution of overflows to shared nodes.
Prior to this change overflows to shared nodes were handled by duplicating the link from only a single parent on each iteration. However, I've encountered fonts where there is a large number of parents sharing a single child. Using the prior strategy requires large number of overflow resolution iterations to resolve overflows. This changes shared overflow resolution to duplicate the shared child and re-assign multiple overflowing parents in a single iteration. This reduces total packing size in these cases and allows resolution to complete in far fewer iterations.
|
|
0d9f4979
|
2023-12-04T21:25:02
|
|
Adjust function hb_blob_create_from_file_or_fail
On Windows the filename will be interpreted as UTF-8.
If the filename is NOT valid UTF-8, it will be interpreted according to the system codepage.
|
|
1d86b844
|
2023-11-30T16:05:51
|
|
CMake: Build libharfbuzz-cairo and fix hb-view build
There is now a separate library that we build if Cairo support is enabled,
which will also be used to build hb-view, so we:
* Add support in the CMake build files to build libharfbuzz-cairo, if enabled
via HB_HAVE_CAIRO. Move the Cairo detection bits around as a result.
* Generate pkg-config file for libharfbuzz-cairo, and add 'cairo' to
Requires.private.
* Fix building hb-view, which will now depend on libharfbuzz-cairo, so Cairo
support must be explicitly enabled.
* Stop depending automatically on Cairo if HB_BUILD_UTILS is enabled unless
Cairo support is enabled as a result.
|
|
df635ab7
|
2023-11-15T14:55:11
|
|
Merge pull request #4473 from googlefonts/help
[instancer] add the option to leave blanks in the min:def:max syntax.
|
|
66a404ca
|
2023-11-15T21:41:30
|
|
[subset] Fix hb_subset_input_get_axis_range documentation.
|
|
15a3889e
|
2023-11-15T21:13:59
|
|
Add hb_subset_input_get_axis_range to experimental symbols list.
|
|
f1ac36ba
|
2023-11-15T11:38:41
|
|
[instancer] update hhea vertical metrics with OS/2 ones
|
|
d30c1dac
|
2023-11-15T20:16:07
|
|
Add test suite for instancing option parsing.
|
|
43236ce3
|
2023-11-01T22:34:39
|
|
[instancer] add the option to leave blanks in the min:def:max syntax.
When parsing axis positions in the --variations flag recognize empty values as meaning the existing value for that part. For example:
:300:500
Specifies min = existing, def = 300, max = 500.
See: https://github.com/fonttools/fonttools/issues/3322
|
|
6a3ca373
|
2023-11-13T16:36:32
|
|
[map] Optimize storage
Such that population isn't a bitfield as we access it often.
|
|
894a1f72
|
2023-11-11T15:57:54
|
|
8.3.0
|
|
2b5af6f4
|
2023-11-10T15:23:27
|
|
[subset-plan] Micro-optimize set iteration
Getting ranges is faster even with the current trivial implementation.
|
|
90fc809f
|
2023-11-10T15:05:08
|
|
[set] Minor likely and __prev__
|
|
6d3b7931
|
2023-11-10T14:51:34
|
|
[subset-plan] Add a couple of allocs
|
|
d46cd93b
|
2023-11-10T14:36:37
|
|
[map] Speed up copy-constructor
|
|
e7879d6c
|
2023-11-10T14:13:20
|
|
[map] Micro-optimize destruction
|
|
d9357a1a
|
2023-11-10T14:08:03
|
|
[cmap] Speed up Format12/13 collect_mapping
|
|
ae6ea6f4
|
2023-11-10T13:52:34
|
|
[cmap] Micro-optimize
|
|
330c32f9
|
2023-11-10T12:27:48
|
|
[graph] Another preallocation
|
|
9c4d3c3c
|
2023-11-10T12:24:26
|
|
[graph] Pre-alloc priority-heap array
|
|
29f8d9f7
|
2023-11-09T09:29:02
|
|
[gen-use-table] Fix __doc__
|
|
32ee89dd
|
2023-11-10T13:48:24
|
|
[cmake] Fix double dots in CMake library location on macOS
|
|
2d001a0a
|
2023-11-08T11:11:51
|
|
[subset] OTS doesn't allow ligature attachment offset to be 0
|
|
9701b002
|
2023-11-06T22:14:31
|
|
[subset] Always place CFF1/2 char strings at the end of the packed table.
Makes the behaviour from HB_SUBSET_FLAGS_IFTB_REQUIREMENTS the default.
|
|
c6884377
|
2023-11-06T20:21:46
|
|
[subset] Add HB_SUBSET_FLAGS_IFTB_REQUIREMENTS flag.
When enabled the output subset conforms to the requirements for a base font to be patched by IFTB patches. IFTB is a proposed incremental font transfer patch. This new flag is set as experimental. Currently, setting this flag causes the output subset to also use long offsets for outline data in loca/glyf, gvar, CFF, and CFF2.
This change is a version of https://github.com/skef/harfbuzz/commit/3ae2fe2084d96f61d8ad1bbe42a6ef4e62ec830a rebased onto head w/ tests added.
|
|
c2f42fbb
|
2023-11-06T11:49:11
|
|
fix meson compiled_tests
|
|
d550e16a
|
2023-11-06T10:31:05
|
|
[instancer] Recalc avgcharwidth after instancing
|
|
d053426b
|
2023-11-06T11:44:14
|
|
Format
|
|
2f528ce4
|
2023-11-06T11:40:19
|
|
Tweak a couple more barriers
|
|
f31fb431
|
2023-11-06T11:29:30
|
|
Remove a couple unnecessary barriers
|
|
d10cc79a
|
2023-11-06T10:41:30
|
|
Move a couple of barriers
|
|
80cb6b58
|
2023-11-06T09:00:33
|
|
[instancer_solver] port solver fix: where axisDef < lower and upper < axisMax
Port from https://github.com/fonttools/fonttools/commit/f1e56cd757ed457ffd3b58c262d3f4c2e4586555
|
|
7ee7e2e3
|
2023-11-04T15:02:28
|
|
[sanitize] Add remaining hb_barrier() annotations
I'm sure I've forgot some. But this is a good start.
|
|
3a9262cc
|
2023-11-04T12:52:46
|
|
[sanitize] More hb_barrier() annotations
|
|
30672c7e
|
2023-11-03T18:52:03
|
|
Add hb_barrier()
And annotate some more.
|
|
775320a4
|
2023-11-03T18:38:12
|
|
[sanitize] Add barriers to runtime-checked values
|
|
cf49f3f2
|
2023-11-03T18:20:14
|
|
[sanitize] Add barrier()
|
|
b16f1800
|
2023-11-03T17:51:50
|
|
[sanitize] Yet another hack to "fix" barrier issue
|
|
fd5eb10d
|
2023-11-03T15:30:15
|
|
Merge pull request #4477 from googlefonts/fix_feature_variations
[instancer] Fix feature variations collect lookups
|
|
cdcad93b
|
2023-11-03T12:45:16
|
|
[set] Mark as realloc-movable
|
|
aca55dbe
|
2023-11-03T10:51:37
|
|
[instancer] fix feature variations collect lookups
We already know which record to keep, so just collect lookups and no
need to check the substitutes_map
|
|
f05636e1
|
2023-11-02T09:18:15
|
|
[instancer] fix build issue after rebase
|
|
6c017a11
|
2023-11-01T09:54:46
|
|
[instancer] SinglePos/PairPos: do not strip_hints for partial instancing
|
|
413af0a9
|
2023-11-02T11:14:48
|
|
[instancer] When partial instancing, subset LigCaretList after VarStore instantiation
|
|
b5329459
|
2023-11-01T16:53:26
|
|
[tuple_delta_t] Micro-optimize encoding vector access
|
|
59cfb4c5
|
2023-11-01T16:25:50
|
|
[instancing] Micro-optimize a loop
|
|
29d49ece
|
2023-11-01T15:55:47
|
|
[vector] Introduce realloc_moves tag
Some types (even aggregate) can be moved using realloc().
Extend the fast path to hb_hashmap and tuple_delta_t.
|
|
2804127a
|
2023-10-31T15:12:55
|
|
[Value] Typed offsets
|
|
38546acd
|
2023-10-31T14:56:09
|
|
[typed-offset] Fix sanitize()
|
|
62117801
|
2023-10-31T14:50:45
|
|
[AnchorMatrix] Annotate offset base type
|
|
4f219385
|
2023-10-31T14:33:23
|
|
[CursivePosFormat1] Use typed offsets for EntryExitRecord
|
|
b37cc61d
|
2023-10-31T14:26:42
|
|
Add base types to OffsetTo<>
Unused so far.
|
|
091e538d
|
2023-10-26T12:52:08
|
|
[instancer] support partial instancing for FeatureVariations
|
|
bf082056
|
2023-10-27T12:24:33
|
|
[deprecated] Add a mis-spelled macro
Fixes https://github.com/harfbuzz/harfbuzz/issues/4464
|
|
9fc45f70
|
2023-10-05T14:06:39
|
|
[ReverseChainSingleSubst] Minor optimization
|
|
b0150ffd
|
2023-10-20T21:53:14
|
|
[subset] keep East Asian spacing vhal, halt, chws, vchw by default
Closes: https://github.com/harfbuzz/harfbuzz/issues/4451
|
|
fde1c369
|
2023-10-19T11:04:34
|
|
Merge pull request #4452 from googlefonts/fix_test
[subset] bug fixes for GDEF
|
|
e595fe75
|
2023-10-18T16:00:06
|
|
fix bots
partial instancing tests are wrapped by experimenal_api, do not enable
them in Makefile
|
|
38f351d1
|
2023-10-18T01:52:18
|
|
[docs] Fixed links to freetype FT_LOAD_XXX flags
Signed-off-by: Alexander Borsuk <me@alex.bio>
|
|
8ceed6ee
|
2023-10-18T15:43:40
|
|
[subset] fix Lookup.MarkFilteringSet to use the new indices
|
|
510456e9
|
2023-10-18T14:26:11
|
|
[subset] don't retain empty coverage in MarkGlyphSetsDef
|
|
16ee24c0
|
2023-10-18T12:43:36
|
|
[subset] bug fix for GDEF
don't use embed(this), snapshot and revert to lower version if needed
|
|
8585d600
|
2023-10-17T14:30:17
|
|
[instancer] update variable device flags in ValueFormat
|
|
1a5dd610
|
2023-10-16T09:47:16
|
|
[instancer] retain empty rows when region is empty and item_count is not
|
|
45a7f9ce
|
2023-10-18T08:28:23
|
|
Change the shebang used for python
The shebang `/usr/bin/python3` assumes python3 is installed in /usr/bin,
which isn't always true (e.g., in the manylinux docker image). Using
`/usr/bin/env python3` uses the python3 that is in the path, which is
more flexible.
|
|
18a6e785
|
2023-10-18T01:10:44
|
|
8.2.2
|
|
52bc78e7
|
2023-10-10T21:44:52
|
|
s/PairPos/MarkBasePos/ in MarkBasePos repacking implementation.
|
|
6190bb0b
|
2023-10-16T14:08:31
|
|
[layout] Change order of feature collection
See comments for rationale.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4445
|
|
1f395cba
|
2023-10-12T10:06:00
|
|
[instancer] templatize the priority queue, use custom type for varstore
when instantiating varstore, we need to pop a tuple like
(combined_gain, i, j), if combined gain is the same then we compare the
value of i, and then j. So we'd like to use custom type as the key when
popping from the queue. This would match fonttool's algorithm cause it
uses heappop().
|
|
a7b3fe35
|
2023-10-05T12:16:00
|
|
Fix test
|
|
fc563bb4
|
2023-10-05T11:07:17
|
|
Merge pull request #4421 from googlefonts/GDEF_GPOS
[instancer] support GDEF/GPOS tables
|
|
f360d704
|
2023-09-29T13:15:01
|
|
Check for closing quote in parse_tag
Fixes #4414.
|
|
333946b0
|
2023-09-28T19:02:37
|
|
[subset] Fix fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5458896606855168. Limit iteration over coverage in MarkLigPosFormat1 subsetting to the number of glyphs in the liga array.
|
|
9ceb800a
|
2023-09-28T10:37:48
|
|
fuzzer fix https://oss-fuzz.com/testcase-detail/5842152921628672
Access TupleVariationData through blob, because we don't sanitize
var_data
|
|
7cb7a799
|
2023-09-28T09:24:06
|
|
[map] Fix undefined integer-overflow
Fixes https://oss-fuzz.com/testcase-detail/5814850435284992
|
|
f9b04b21
|
2023-09-27T09:36:52
|
|
[instancer] match fonttools'r order when calculating chars
Also fix a bug, make sure map set is happening before std::move
|
|
f39e9bf1
|
2023-09-25T08:59:11
|
|
[instancer] instantiate GPOS
Just need to update var_idxes and deltas
|
|
5c6795e2
|
2023-09-21T12:04:03
|
|
[instancer] make GPOS depend on GDEF when partial instancing
GPOS needs to wait for GDEF remapping layout var idxes
|
|
c8594baa
|
2023-09-21T11:45:01
|
|
[instancer] instantiate GDEF varStore
And update layout var idxes accordingly
|
|
77f24d82
|
2023-09-22T14:47:11
|
|
[instancer] remap layout var_idxes code update
make hb_collect_variation_indices_context_t only collect layout
variation indices.
|
|
c8c97864
|
2023-09-21T11:29:43
|
|
[instancer] simplify item_variations_t API calls
merge create,instantiate and as_item_varstore into one API
|
|
69da5aae
|
2023-09-22T21:27:12
|
|
Added minor fixes to build without errors with gcc 4.9.2
|
|
b8121ccb
|
2023-09-21T15:41:09
|
|
[meson] keep asserts in test programs
|
|
5aa4865a
|
2023-09-20T14:52:58
|
|
[instancer] fix compile warnings
In constructor ‘OT::delta_row_encoding_t::delta_row_encoding_t(OT::delta_row_encoding_t&&)’,
inlined from ‘Type* hb_vector_t<Type, sorted>::push(Args&& ...) [with Args = {OT::delta_row_encoding_t}; Type = OT::delta_row_encoding_t; bool sorted = false]’ at ../src/hb-vector.hh:221:12,
inlined from ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’ at ../src/hb-ot-var-common.hh:1985:24:
../src/hb-ot-layout-common.hh:2304:8: warning: ‘obj.OT::delta_row_encoding_t::width’ may be used uninitialized [-Wmaybe-uninitialized]
2304 | struct delta_row_encoding_t
| ^~~~~~~~~~~~~~~~~~~~
../src/hb-ot-var-common.hh: In member function ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’:
../src/hb-ot-var-common.hh:1981:30: note: ‘obj.OT::delta_row_encoding_t::width’ was declared here
1981 | delta_row_encoding_t obj;
| ^~~
In constructor ‘OT::delta_row_encoding_t::delta_row_encoding_t(OT::delta_row_encoding_t&&)’,
inlined from ‘Type* hb_vector_t<Type, sorted>::push(Args&& ...) [with Args = {OT::delta_row_encoding_t}; Type = OT::delta_row_encoding_t; bool sorted = false]’ at ../src/hb-vector.hh:221:12,
inlined from ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’ at ../src/hb-ot-var-common.hh:1985:24:
../src/hb-ot-layout-common.hh:2304:8: warning: ‘obj.OT::delta_row_encoding_t::overhead’ may be used uninitialized [-Wmaybe-uninitialized]
2304 | struct delta_row_encoding_t
| ^~~~~~~~~~~~~~~~~~~~
../src/hb-ot-var-common.hh: In member function ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’:
../src/hb-ot-var-common.hh:1981:30: note: ‘obj.OT::delta_row_encoding_t::overhead’ was declared here
1981 | delta_row_encoding_t obj;
|
|
4b3aa010
|
2023-09-20T14:37:42
|
|
Merge pull request #4410 from googlefonts/HVAR_instance
[instancer] instantiate HVAR/VVAR
|
|
da2c59d7
|
2023-09-19T17:01:04
|
|
[instancer] Delete redundant code block in cvar subsetting
That case is handled in hb-subset.cc.
It also made compilation with HB_NO_VAR fail because it accessed table.fvar.
|
|
284889b0
|
2023-09-20T20:17:48
|
|
[subset] Drop fvar, avar, cvar, MVAR tables when in HB_NO_VAR mode
|
|
ef4ff1d6
|
2023-09-20T11:35:33
|
|
[instancer] make varstore items sorting method match fonttool's
Also update expected tests
|
|
b5f7ca1a
|
2023-09-20T11:28:15
|
|
[instancer] fix bots
|
|
5ec21d4a
|
2023-09-20T09:31:03
|
|
[instancer] fix delta_row_encoding_t constructor
always move chars_
|
|
58e5d45d
|
2023-09-19T10:33:32
|
|
[instancer] instantiate HVAR/VVAR
|
|
e81ad14d
|
2023-09-19T13:23:58
|
|
[instancer] change optimize() to as_item_varstore()
which allows another option to skip optimization
|
|
97d0e7a1
|
2023-09-19T11:25:14
|
|
[instancer] add inner_maps as optional argument when creating item_variations_t
This allows that we create item_variations_t with only a subset of
the original varstore
|
|
005582e0
|
2023-09-20T09:10:10
|
|
Merge pull request #4370 from 2xsaiko/outgoing/cmake-now-for-real
Re-do and clean up CMake support, making it use relocatable paths
|
|
da9b8389
|
2023-08-08T14:33:03
|
|
Re-do and clean up CMake support, making it use relocatable paths
Closes #4025.
|