src


Log

Author Commit Date CI Message
Garret Rieger d80e0974 2023-12-15T22:49:46 [repacker] Increase repacker max rounds to 32. Found an example font that needs the higher limit.
Behdad Esfahbod 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
Qunxin Liu 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
Behdad Esfahbod bf84135e 2023-12-05T11:58:21 [cff] Support negative offsets Fixes https://github.com/harfbuzz/harfbuzz/issues/4508
Garret Rieger 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.
Garret Rieger 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.
utelle 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.
Chun-wei Fan 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.
Behdad Esfahbod 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.
Garret Rieger 66a404ca 2023-11-15T21:41:30 [subset] Fix hb_subset_input_get_axis_range documentation.
Garret Rieger 15a3889e 2023-11-15T21:13:59 Add hb_subset_input_get_axis_range to experimental symbols list.
Qunxin Liu f1ac36ba 2023-11-15T11:38:41 [instancer] update hhea vertical metrics with OS/2 ones
Garret Rieger d30c1dac 2023-11-15T20:16:07 Add test suite for instancing option parsing.
Garret Rieger 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
Behdad Esfahbod 6a3ca373 2023-11-13T16:36:32 [map] Optimize storage Such that population isn't a bitfield as we access it often.
Khaled Hosny 894a1f72 2023-11-11T15:57:54 8.3.0
Behdad Esfahbod 2b5af6f4 2023-11-10T15:23:27 [subset-plan] Micro-optimize set iteration Getting ranges is faster even with the current trivial implementation.
Behdad Esfahbod 90fc809f 2023-11-10T15:05:08 [set] Minor likely and __prev__
Behdad Esfahbod 6d3b7931 2023-11-10T14:51:34 [subset-plan] Add a couple of allocs
Behdad Esfahbod d46cd93b 2023-11-10T14:36:37 [map] Speed up copy-constructor
Behdad Esfahbod e7879d6c 2023-11-10T14:13:20 [map] Micro-optimize destruction
Behdad Esfahbod d9357a1a 2023-11-10T14:08:03 [cmap] Speed up Format12/13 collect_mapping
Behdad Esfahbod ae6ea6f4 2023-11-10T13:52:34 [cmap] Micro-optimize
Behdad Esfahbod 330c32f9 2023-11-10T12:27:48 [graph] Another preallocation
Behdad Esfahbod 9c4d3c3c 2023-11-10T12:24:26 [graph] Pre-alloc priority-heap array
Behdad Esfahbod 29f8d9f7 2023-11-09T09:29:02 [gen-use-table] Fix __doc__
Boris Dalstein 32ee89dd 2023-11-10T13:48:24 [cmake] Fix double dots in CMake library location on macOS
Qunxin Liu 2d001a0a 2023-11-08T11:11:51 [subset] OTS doesn't allow ligature attachment offset to be 0
Garret Rieger 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.
Garret Rieger 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.
Qunxin Liu c2f42fbb 2023-11-06T11:49:11 fix meson compiled_tests
Qunxin Liu d550e16a 2023-11-06T10:31:05 [instancer] Recalc avgcharwidth after instancing
Behdad Esfahbod d053426b 2023-11-06T11:44:14 Format
Behdad Esfahbod 2f528ce4 2023-11-06T11:40:19 Tweak a couple more barriers
Behdad Esfahbod f31fb431 2023-11-06T11:29:30 Remove a couple unnecessary barriers
Behdad Esfahbod d10cc79a 2023-11-06T10:41:30 Move a couple of barriers
Qunxin Liu 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
Behdad Esfahbod 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.
Behdad Esfahbod 3a9262cc 2023-11-04T12:52:46 [sanitize] More hb_barrier() annotations
Behdad Esfahbod 30672c7e 2023-11-03T18:52:03 Add hb_barrier() And annotate some more.
Behdad Esfahbod 775320a4 2023-11-03T18:38:12 [sanitize] Add barriers to runtime-checked values
Behdad Esfahbod cf49f3f2 2023-11-03T18:20:14 [sanitize] Add barrier()
Behdad Esfahbod b16f1800 2023-11-03T17:51:50 [sanitize] Yet another hack to "fix" barrier issue
Behdad Esfahbod fd5eb10d 2023-11-03T15:30:15 Merge pull request #4477 from googlefonts/fix_feature_variations [instancer] Fix feature variations collect lookups
Behdad Esfahbod cdcad93b 2023-11-03T12:45:16 [set] Mark as realloc-movable
Qunxin Liu 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
Qunxin Liu f05636e1 2023-11-02T09:18:15 [instancer] fix build issue after rebase
Qunxin Liu 6c017a11 2023-11-01T09:54:46 [instancer] SinglePos/PairPos: do not strip_hints for partial instancing
Qunxin Liu 413af0a9 2023-11-02T11:14:48 [instancer] When partial instancing, subset LigCaretList after VarStore instantiation
Behdad Esfahbod b5329459 2023-11-01T16:53:26 [tuple_delta_t] Micro-optimize encoding vector access
Behdad Esfahbod 59cfb4c5 2023-11-01T16:25:50 [instancing] Micro-optimize a loop
Behdad Esfahbod 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.
Behdad Esfahbod 2804127a 2023-10-31T15:12:55 [Value] Typed offsets
Behdad Esfahbod 38546acd 2023-10-31T14:56:09 [typed-offset] Fix sanitize()
Behdad Esfahbod 62117801 2023-10-31T14:50:45 [AnchorMatrix] Annotate offset base type
Behdad Esfahbod 4f219385 2023-10-31T14:33:23 [CursivePosFormat1] Use typed offsets for EntryExitRecord
Behdad Esfahbod b37cc61d 2023-10-31T14:26:42 Add base types to OffsetTo<> Unused so far.
Qunxin Liu 091e538d 2023-10-26T12:52:08 [instancer] support partial instancing for FeatureVariations
Behdad Esfahbod bf082056 2023-10-27T12:24:33 [deprecated] Add a mis-spelled macro Fixes https://github.com/harfbuzz/harfbuzz/issues/4464
Behdad Esfahbod 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
Behdad Esfahbod fde1c369 2023-10-19T11:04:34 Merge pull request #4452 from googlefonts/fix_test [subset] bug fixes for GDEF
Qunxin Liu e595fe75 2023-10-18T16:00:06 fix bots partial instancing tests are wrapped by experimenal_api, do not enable them in Makefile
Alexander Borsuk 38f351d1 2023-10-18T01:52:18 [docs] Fixed links to freetype FT_LOAD_XXX flags Signed-off-by: Alexander Borsuk <me@alex.bio>
Qunxin Liu 8ceed6ee 2023-10-18T15:43:40 [subset] fix Lookup.MarkFilteringSet to use the new indices
Qunxin Liu 510456e9 2023-10-18T14:26:11 [subset] don't retain empty coverage in MarkGlyphSetsDef
Qunxin Liu 16ee24c0 2023-10-18T12:43:36 [subset] bug fix for GDEF don't use embed(this), snapshot and revert to lower version if needed
Qunxin Liu 8585d600 2023-10-17T14:30:17 [instancer] update variable device flags in ValueFormat
Qunxin Liu 1a5dd610 2023-10-16T09:47:16 [instancer] retain empty rows when region is empty and item_count is not
David Manthey 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.
Khaled Hosny 18a6e785 2023-10-18T01:10:44 8.2.2
Garret Rieger 52bc78e7 2023-10-10T21:44:52 s/PairPos/MarkBasePos/ in MarkBasePos repacking implementation.
Behdad Esfahbod 6190bb0b 2023-10-16T14:08:31 [layout] Change order of feature collection See comments for rationale. Fixes https://github.com/harfbuzz/harfbuzz/issues/4445
Qunxin Liu 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().
Behdad Esfahbod a7b3fe35 2023-10-05T12:16:00 Fix test
Behdad Esfahbod fc563bb4 2023-10-05T11:07:17 Merge pull request #4421 from googlefonts/GDEF_GPOS [instancer] support GDEF/GPOS tables
jfkthame f360d704 2023-09-29T13:15:01 Check for closing quote in parse_tag Fixes #4414.
Garret Rieger 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.
Qunxin Liu 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
Behdad Esfahbod 7cb7a799 2023-09-28T09:24:06 [map] Fix undefined integer-overflow Fixes https://oss-fuzz.com/testcase-detail/5814850435284992
Qunxin Liu 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
Qunxin Liu f39e9bf1 2023-09-25T08:59:11 [instancer] instantiate GPOS Just need to update var_idxes and deltas
Qunxin Liu 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
Qunxin Liu c8594baa 2023-09-21T11:45:01 [instancer] instantiate GDEF varStore And update layout var idxes accordingly
Qunxin Liu 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.
Qunxin Liu c8c97864 2023-09-21T11:29:43 [instancer] simplify item_variations_t API calls merge create,instantiate and as_item_varstore into one API
inobelar 69da5aae 2023-09-22T21:27:12 Added minor fixes to build without errors with gcc 4.9.2
Duncan Overbruck b8121ccb 2023-09-21T15:41:09 [meson] keep asserts in test programs
Qunxin Liu 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;
Behdad Esfahbod 4b3aa010 2023-09-20T14:37:42 Merge pull request #4410 from googlefonts/HVAR_instance [instancer] instantiate HVAR/VVAR
Thomas Petillon 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.
Thomas Petillon 284889b0 2023-09-20T20:17:48 [subset] Drop fvar, avar, cvar, MVAR tables when in HB_NO_VAR mode
Qunxin Liu ef4ff1d6 2023-09-20T11:35:33 [instancer] make varstore items sorting method match fonttool's Also update expected tests
Qunxin Liu b5f7ca1a 2023-09-20T11:28:15 [instancer] fix bots
Qunxin Liu 5ec21d4a 2023-09-20T09:31:03 [instancer] fix delta_row_encoding_t constructor always move chars_
Qunxin Liu 58e5d45d 2023-09-19T10:33:32 [instancer] instantiate HVAR/VVAR
Qunxin Liu e81ad14d 2023-09-19T13:23:58 [instancer] change optimize() to as_item_varstore() which allows another option to skip optimization
Qunxin Liu 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
Behdad Esfahbod 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
Marco Rebhan da9b8389 2023-08-08T14:33:03 Re-do and clean up CMake support, making it use relocatable paths Closes #4025.