src


Log

Author Commit Date CI Message
Garret Rieger 0ac9e7da 2024-03-08T21:53:10 [repacker] in classdef estimator tests compare results to actual class def serialization. Fix the estimator to actually match real serialization sizes.
Garret Rieger 8129b21d 2024-03-08T20:15:43 Update classdef size estimator to pick the min coverage format. Previously this just assumed a worst case format 1.
Garret Rieger 252a926f 2024-03-08T19:46:48 [repacker] Rework how ClassDef sizes are estimated during splitting. The old approach considered only one class at a time, which in some cases can generate the wrong answer. This change updates the estimation to consider how all classes in the current split would end up encoded in a single ClassDef table. Additionally compute whether glyphs are consecutive only for the current split (instead of the fully mapping).
Qunxin Liu d6431dc7 2024-03-06T15:20:10 [instancer] support *=drop, which would pin all axis to default location
Behdad Esfahbod 06749fa4 2024-03-04T11:25:44 [icu] Use uscript_getCode()
L. E. Segovia 6864769c 2024-02-25T13:46:05 [meson] Block uses of hb-static throughout Microsoft compilers PE-COFF cannot export extern, non-dllexport symbols.
Behdad Esfahbod 225a7a8a 2024-02-24T15:12:42 [aat] Mark DELETED_GLYPH as IGNORABLE Fixes https://github.com/harfbuzz/harfbuzz/issues/4598
Behdad Esfahbod 5d1ff191 2024-02-16T22:07:36 Fix return type https://github.com/harfbuzz/harfbuzz/commit/1bddeb974ff0c08332c8225f6f5b5bd45bcddfdc#r138731107
Bruce Mitchener fb6d4d27 2024-02-17T15:23:29 Remove unnecessary std::move(). This fixes a warning from clang-tidy: warning: std::move of the variable 'mapping' of the trivially-copyable type 'AxisValueMap' has no effect [performance-move-const-arg]
Bruce Mitchener 3cfdbd67 2024-02-16T23:41:55 Use `noexcept` on swap, move constructors, etc.
Bruce Mitchener 1bddeb97 2024-02-16T23:20:54 Use literal bools when possible rather than ints.
Magnus Larsen b8178f25 2024-02-12T21:48:28 Disable Wcast-function-type on clang-cl, too
Christer Sandberg 1ab8822b 2024-02-09T17:24:49 Fixed some errors in STAT table implementation
Behdad Esfahbod 031fdb1c 2024-02-06T14:51:41 Rename VarStoreInstancer to ItemVarStoreInstancer
Behdad Esfahbod 1cb47eff 2024-02-06T14:49:31 Rename VariationStore to ItemVariationStore
Lőrinczy, Zsigmond 4c77bd92 2024-02-06T17:51:49 Update hb-serialize.hh (#4576) * Update hb-serialize.hh This version does compile with g++ 4.8.3 which is the newest available version on Aix5.3 * Update hb-serialize.hh Back to the original version, just without `this->`
Behdad Esfahbod a9b88917 2024-02-02T18:24:24 Merge pull request #4563 from googlefonts/instancer_iup_delta_opt [Instancer] add code for iup delta optimization
Qunxin Liu 97309483 2024-02-02T16:59:19 [instancer] rename HB_SUBSET_FLAGS_IUP_DELTA_OPT to HB_SUBSET_FLAGS_OPTIMIZE_IUP_DELTAS
Qunxin Liu f072de93 2024-01-30T10:31:14 [instancer] move iup code to a seprate file
Behdad Esfahbod 846d5204 2024-01-27T16:34:29 [ft] Remove unnecessary cast
Behdad Esfahbod 9182315b 2024-01-27T16:33:46 [hb.hh] Add error -Wcast-function-type-strict
Qunxin Liu 97c85ab2 2024-01-26T16:36:56 [instancer] iup delta optimize: fix is_composite_glyph value in gvar
Qunxin Liu 4d5fb233 2024-01-26T16:00:58 fix build
Qunxin Liu 0cbc8123 2024-01-26T11:26:10 [instancer] add iup_optimize() call into instantiation
Patrick Griffis aed309d1 2024-01-26T13:11:26 [autotools] Installing missing hb-features.h header This is already installed by CMake and Meson.
Qunxin Liu 52c3cda3 2024-01-26T10:55:57 [instancer] add composite_new_gids set in subset plan This is only used by iup delta optimization where we need to know whether glyph is composite or not
Qunxin Liu a3e3473c 2024-01-26T10:34:58 [instancer] when iup delta opt is enabled, add default deltas to coords
Qunxin Liu f1cdcc70 2024-01-26T10:12:38 [instancer] add iup delta optimization functions tuple_delta_t ported from fonttools
Qunxin Liu 8ad540bb 2024-01-26T09:58:48 [instancer] move compile_point_set to be a member of tuple_delta_t Also change hb_bytes_t to vector for memory safety
Qunxin Liu c7a6030b 2024-01-26T09:27:27 [instancer] add a flag HB_SUBSET_FLAGS_IUP_DELTA_OPT
Sergei Trofimovich 032c931e 2024-01-13T15:57:03 use `calloc(nmemb, size)`, not `calloc(size, nmemb)` This minor mismatch is detected by new `-Wcalloc-transposed-args` `gcc-14` warning as: In file included from ../src/hb-subset-plan.cc:38: ../src/hb-ot-cff1-table.hh: In member function 'bool OT::cff1::accelerator_t::get_glyph_from_name(const char*, int, hb_codepoint_t*) const': ../src/hb-ot-cff1-table.hh:1419:60: warning: 'void* calloc(size_t, size_t)' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Wcalloc-transposed-args] 1419 | names = (hb_sorted_vector_t<gname_t> *) hb_calloc (sizeof (hb_sorted_vector_t<gname_t>), 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Garret Rieger ef1f5c4e 2024-01-08T22:17:55 [subset] Re-use common Coverage subsetting function in PairPosFormat2. Was using an identical but less efficient version. Fixes fuzzer test case: https://oss-fuzz.com/testcase-detail/6151390002806784
Behdad Esfahbod e0e2b29e 2024-01-08T12:30:23 [cmap] Implement MacRoman encoding For other Mac encodings just map the ASCII range. Fixes https://github.com/harfbuzz/harfbuzz/issues/4540
Behdad Esfahbod ef289a9e 2024-01-08T09:11:01 [COLR] Reduce COLRv1 max edge count 64k sounds excessive. Fixes https://oss-fuzz.com/testcase-detail/5383336738291712
Lie Yan 155015f4 2024-01-08T21:44:27 refactor(math-kern): call hb_bsearch_impl instead of raw binary search
Behdad Esfahbod 2f41d54b 2024-01-07T13:43:50 Fix old-compiler warning
Ozkan Sezer 1cc7ddb3 2024-01-07T18:55:40 hb-subset-plan.cc: Fix -Wparentheses warning. In file included from hb-subset-plan.hh:30:0, from hb-subset-plan.cc:27: hb-subset-plan.cc: In function 'void _update_instance_metrics_map_from_cff2(hb_subset_plan_t*)': hb-subset-plan.cc:998:81: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (unlikely (!plan->check_success (font = _get_hb_font_with_variations (plan)))) ^ hb.hh:263:25: note: in definition of macro 'unlikely' #define unlikely(expr) (expr) ^ Fixes: https://github.com/harfbuzz/harfbuzz/issues/4545
Lie Yan c17d6746 2024-01-07T22:10:10 [ot-math] Fix a bug in MathKern::get_value() Fixes https://github.com/harfbuzz/harfbuzz/issues/4542
Behdad Esfahbod e9d72717 2024-01-04T09:36:14 [cmap] Remove more unused code
Behdad Esfahbod f8d924e5 2024-01-04T09:35:15 [cmap] Remove unused code
Behdad Esfahbod 81c22121 2024-01-01T13:52:33 [test-instancer-solver] Fix on msys32 hopefully
Garret Rieger bb5c7ccb 2023-12-19T20:55:46 Also enforce IFTB requirements during instantiation of gvar.
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