|
c5c13006
|
2021-03-31T11:23:46
|
|
[subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536
|
|
bd2950b3
|
2021-03-31T11:36:36
|
|
Make VariationStore::get_delta(outer, inner) private
|
|
934675a4
|
2021-03-31T11:34:41
|
|
Use VarIdx in VariationDevice
|
|
0f7f7536
|
2021-03-31T11:31:49
|
|
[hvar] Change variation-index types from "unsigned int" to uint32_t
|
|
9ffc46b8
|
2021-03-31T11:26:18
|
|
Add VarIdx
|
|
2179281c
|
2021-03-31T11:20:21
|
|
Add Offset24
|
|
b3159ed8
|
2021-03-30T20:52:56
|
|
[util] Silence compiler warning
|
|
cab9d5a5
|
2021-03-19T22:10:50
|
|
hb-config: Include config-override earlier
Currently config-override.h is included at the end of this file. This caused a problem for me while undefing HB_DISABLE_DEPRECATED, namely HB_IF_NOT_DEPRECATED was defined before actual undef took place and broke the whole build. I believe it would break builds for some other defines, too. Moving config-override.h include right after predefined configs is more sane and fixes all potential problems with includes.
|
|
adca4ce0
|
2021-03-30T13:20:50
|
|
[subset] fixes https://oss-fuzz.com/testcase-detail/6173520787800064.
Caused by incorrect bounds check in glyph closure for context lookups.
|
|
9f77a0c1
|
2021-03-30T14:10:45
|
|
[subset] use hb_set_clear to avoid calling clear() on null pool set.
|
|
752e393a
|
2021-03-29T17:23:33
|
|
[subset] avoid calling clear on null pool set.
|
|
9ed5f04a
|
2021-03-29T18:14:30
|
|
[subset] Simplify recent out-of-memory fixes
By checking return status of map->set().
|
|
a8f9f85a
|
2021-03-29T18:12:05
|
|
[map] Return success from ->set()
|
|
8741914a
|
2021-03-29T16:39:44
|
|
[subset] fix memory leak when map insert fails.
|
|
23976893
|
2021-03-29T17:34:23
|
|
Remove hb_success_t
Was not rolled-out yet. So just expand.
|
|
7a2eda78
|
2021-03-29T17:32:29
|
|
Move code around
|
|
bcb57dcc
|
2021-03-29T17:31:09
|
|
[sanitize] Add short-circuit to ArrayOfM1
Like the sibling ArrayOf types.
|
|
5b6da6d2
|
2021-03-29T16:19:17
|
|
[subset] add fuzzer test case.
|
|
52df6b9f
|
2021-03-29T16:17:27
|
|
[subset] check for set insertion success.
|
|
c6adb90a
|
2021-03-29T16:08:44
|
|
[subset] fix nullptr deref.
|
|
9a3537e5
|
2021-03-29T14:34:24
|
|
[subset] invert err() return value. Undo previous change to check_success.
|
|
a804a0c9
|
2021-03-29T14:25:20
|
|
[subset] add fuzzer test case.
|
|
cdba5d44
|
2021-03-29T14:23:59
|
|
[subset] fix incorrect handling of return value in check_success in the error case.
|
|
05e845c4
|
2021-03-29T16:02:10
|
|
Make previous commit gcc-only
|
|
b5e40323
|
2021-03-29T15:54:40
|
|
-Wno-unused-result
GCC doesn't let one turn off the warning using "(void) foo()".
People have introduced macros that do "unused << foo()" instead.
Until we do something similar, silence gcc.
Clang on the other hand understands "(void) foo()".
|
|
c30349d5
|
2021-03-21T20:12:59
|
|
[hb-view] Support kitty inline images protocol
https://github.com/harfbuzz/harfbuzz/issues/2758
|
|
f7d5889b
|
2021-03-21T18:16:33
|
|
[hb-view] Support iTerm2 inline images protocol
https://github.com/harfbuzz/harfbuzz/issues/2758
|
|
743baf35
|
2021-03-22T15:51:17
|
|
[build] Don’t look for FontConfig
We don’t currently use it anywhere. It was used briefly for the
hb-fc-list tool, but this tool have not been built since 2015:
commit cd042fc8c4a3984c3647cd22a27c34f00636f6e8
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Jun 18 10:55:13 2015 -0700
[util] Disable hb-fc-list for now
Until I figure out what to do about the API, and finalize
the tool.
|
|
95230e29
|
2021-03-18T17:41:25
|
|
[subset] support subsetting GSUB8
|
|
d18915f9
|
2021-03-28T10:09:13
|
|
Reformat gen-tag-table.py
|
|
3c8273ab
|
2021-03-25T11:39:57
|
|
Check for alloc failures on the gsub/gpos_langsys maps in subset plan creation.
|
|
29708e95
|
2021-03-22T15:22:15
|
|
[aat] Fix offsetToIndex math for out-of-bounds values
Previously, some bad font data was accidentally being interpretted as
legit if it happened to not fall out of memory bounds. The intention
of the code was what this commit does. I'm surprised we weren't getting
a "arithmetic between signed and unsigned values" warning / error
before.
|
|
c5d6bdb4
|
2021-03-18T14:38:55
|
|
Merge pull request #2857 from googlefonts/repacker
[subset] add a GSUB/GPOS table repacker to resolve offset overflows.
|
|
46bf03d6
|
2021-03-18T14:35:36
|
|
[subset] add NODISCARD to error checking methods on serializer.
|
|
3827a3eb
|
2021-03-18T11:20:03
|
|
[subset] rename serializer::set_error() to err().
|
|
f561fa6e
|
2021-03-18T11:13:47
|
|
Change priority queue to use (priority, value) instead of (value, priority).
|
|
b14475d2
|
2021-03-18T10:51:26
|
|
[subset] further changes to serializer error handling.
- Rename enum type and enum members.
- in_errors() now returns true for any error having been set. hb-subset now looks for offset overflow only errors to divert to repacker.
- Added INT_OVERFLOW and ARRAY_OVERFLOW enum values.
|
|
73ed59f7
|
2021-03-17T15:53:10
|
|
[subset] store errors in the serializer as a flag set.
Make check_assign/check_equal specify the type of error to set.
|
|
b9ecc742
|
2021-02-16T13:39:10
|
|
[subset] init offset_overflow in hb_serialize_context_t.
|
|
cf79fc34
|
2021-02-16T13:24:43
|
|
[subset] limit priority bumps to 16.
|
|
01044099
|
2021-02-16T11:38:14
|
|
Fix repack_tests for distcheck.
|
|
e2f14e81
|
2020-11-11T13:55:35
|
|
[subset] fix memory leaks in test-repacker.
|
|
d3e2ba7c
|
2020-11-11T13:50:18
|
|
[subset] comment cleanup in hb-repacker.hh
|
|
832f2b59
|
2020-11-10T16:15:37
|
|
[subset] Refactor _subset () to reduce nesting and eliminate the use of 'goto'.
|
|
bb5c80a7
|
2020-11-10T14:11:57
|
|
[subset] add error tracking to the repacker.
Also check for allocation failures as needed.
|
|
b8b8c58b
|
2020-11-10T11:56:09
|
|
[subset] add tests that check for successful repacking of a real font file.
|
|
6e9468fc
|
2020-11-09T16:52:36
|
|
[subset] cleanup memory leaks in the repacker.
|
|
a7a86a6e
|
2020-11-06T16:22:48
|
|
[subset] Add prioritization offset resolution.
Vertices can now be prioritized to force them to sort closer to their parent. The resolver will attempt to use this for overflows on non-shared vertices.
|
|
b452b2c7
|
2020-11-06T15:37:05
|
|
[subset] refactor repacker graph to cache edge count and distances of vertices.
|
|
75414e82
|
2020-11-05T16:39:23
|
|
[subset] Add table duplication overflow resolution.
|
|
8286bd80
|
2020-11-05T14:23:29
|
|
[subset] use vectors instead of hashmaps throughout the repacker since all keys will be mapped for these use cases.
|
|
519ae966
|
2020-11-05T11:22:16
|
|
[subset] switch sort_shortest_distance() to use priority queue.
|
|
5d3511e5
|
2020-11-05T10:34:26
|
|
[subset] Change compute_distances() to use a priority queue.
|
|
59ac0a0d
|
2020-11-05T10:29:56
|
|
[subset] Use priority for comparison in heap.
|
|
4c8dd41e
|
2020-11-05T09:21:25
|
|
[subset] re-write compute distances to use an array lookup for the distance map.
|
|
5c4e0ffd
|
2020-11-04T16:08:01
|
|
[subset] Add a basic priority queue datastructure (binary heap).
|
|
dd8e5d0e
|
2020-11-03T14:01:42
|
|
[subset] Only run the repacker for GSUB/GPOS.
|
|
aaa7873d
|
2020-11-02T16:16:27
|
|
[subset] add topological sort by closest distance via Dijkstra's algorithm.
|
|
8ebe5d73
|
2020-11-02T14:51:39
|
|
Implement will_overflow ().
|
|
6b1ea4cb
|
2020-10-30T12:16:26
|
|
[subset] hook up the repacker to run if offset overflows are encountered during subsetting.
|
|
f4c78cc7
|
2020-10-30T10:29:51
|
|
[subset] Implement Kahn's algo for topological sorting instead of BFS.
|
|
00f393dc
|
2020-10-29T14:58:34
|
|
[subset] finish up BFS sort implementation.
|
|
1584d3cb
|
2020-10-28T17:49:09
|
|
[subset] Start a proof of concept implementation of the GSUB/GPOS offset overflow resolver.
|
|
a7d120ae
|
2021-03-17T14:33:33
|
|
Merge pull request #2835 from googlefonts/remove_redundant_sys
[subset] Remove redundant LangSys
|
|
56ca4357
|
2021-01-28T15:21:26
|
|
[subset] fix for collect_features and remove_redundant_lamngsys
previously remove_redundant_sys () is missing in harfbuzz, after
redundant langsys removal, some features are removed as well in
prune_features() in fonttools. This change is trying to get the same
result between harfbuzz and fonttools.
|
|
69d772e5
|
2021-03-17T14:11:16
|
|
[subset] Fixed test gsub5 test files.
|
|
0e1c0fa4
|
2021-01-12T10:17:14
|
|
[subset] optimize glyph closure method: step 5
add testcase and some fixes
|
|
b8a58a0c
|
2021-01-10T15:50:04
|
|
[subset] optimize glyph closure method: step 4
optimize recurse_lookups in Context/ChainContext
glyph closure, only the glyphs that the parent lookup
can apply the recursion to can participate in recursing
the lookup.
|
|
62423504
|
2021-01-05T14:54:40
|
|
[subset] optimize glyph closure method: step 3
Add function intersects_coverage_glyphs that collects
set of matching glyphs in Coverage table
|
|
ef78d0f9
|
2021-01-05T10:16:50
|
|
[subset] optimize glyph closure method: step 2
Add function intersects_class_glyphs that collects
set of glyphs matching class in ClassDef table
|
|
b4fc593c
|
2020-12-09T10:44:18
|
|
[subset] optimize glyph closure method: step1
Previous GSUB glyph closure is done by recursively visiting
all reachable lookup tables that apply to any glyphs in the
current/input glyph set, but actually only the glyphs that
the parent lookup can apply the recursion to can participate
in recursing the lookup. This is step 1 for glyph closure
optimization:
1. Add stack of currently active glyph set pointers into hb_closure_context_t
2. Update closure() method in simple GSUB tables to use
this stack in order not to change current glyph set at different stages
of recursion
3. Add function may_have_non_1to1() to GSUB tables
|
|
5f4c321d
|
2021-03-17T10:20:59
|
|
Merge pull request #2894 from googlefonts/gpos_2
[subset] Update PairPosFormat2 subsetting to match fontTools
|
|
1b79b8cd
|
2021-03-16T15:23:11
|
|
[subset] update gpos tests to reflect updated behaviour.
|
|
2df39bca
|
2021-03-16T14:20:49
|
|
[subset] don't allocate a set to use as a glyph filter for PairPosFormat2.
|
|
b1b1486d
|
2021-03-16T13:32:23
|
|
[subset] update expected files to not include cmap12 pruning.
|
|
bb54e104
|
2021-03-16T13:19:26
|
|
[subset] Also filter class1 by coverage when collecting variation indices for PairPosFormat2.
|
|
190b7a98
|
2020-10-08T14:44:54
|
|
[subset] Update PairPosFormat2 subsetting to match fontTools updated subsetting (https://github.com/fonttools/fonttools/pull/2221)
- subset class def 1 against the coverage table.
- Don't re-use class 0 in class def 2.
- Ignore class 0 glyphs for the purposes of determing format 1 vs format 2 encoding for ClassDef.
Add an additional test case which demonstrates these issues.
|
|
03538e87
|
2021-03-16T19:28:35
|
|
2.8.0
|
|
4c34478b
|
2021-03-16T10:37:49
|
|
Merge pull request #2899 from harfbuzz/ci-fix
[ci] Don’t install meson from its master branch
|
|
daeb2773
|
2021-03-15T18:50:02
|
|
Merge pull request #2900 from harfbuzz/nodiscard-buffer
Mark buffer modification methods that can fail with nodiscard
|
|
f2d08578
|
2021-03-16T00:19:40
|
|
[tests] Increase shape-fuzzer timeout
|
|
cad753e2
|
2021-03-16T01:04:16
|
|
[ci] Use known working Ubuntu version
GitHub Actions seems to be moving ubuntu-latest from ubuntu-18.04 to
ubuntu-20.04, but gcovr is broken for us in the new version.
|
|
ff86c72e
|
2021-03-16T00:20:05
|
|
[ci] Avoid duplicate builds on pull requests
Don’t run GitHub Actions on pushing to branches other than master. This
was already the case for the linux-ci workflow.
|
|
f5356bcb
|
2021-03-15T16:52:39
|
|
[ci] Switch back to c++2a
Okay I guess we can be bothered to fix things up for next version of C++.
Reverts meat of c0b3b9b2584c6dcb5fc37e3b49e26fba718d0e6c
|
|
9e397ff2
|
2021-03-15T16:50:54
|
|
[buffer] Fix order of HB_INTERNAL HB_DISCARD
Sucks that has to be specified in this order. But that is what it is for now.
Was only exhibiting problem on C++>=17 since that's when the [[nodiscard]]
was introduced.
|
|
9582640e
|
2021-03-15T16:47:27
|
|
[ci] Remove more cruft
All were commented out already.
|
|
c0b3b9b2
|
2021-03-15T16:46:13
|
|
[ci] Don't test C++2a build
One of the bots is unhappy when HB_NODISCARD comes after HB_INTERNAL.
No idea why. But, again, we're testing HarfBuzz, not C++, not clang. Ugh.
In file included from src/harfbuzz.cc:1:
In file included from src/hb-aat-layout.cc:30:
In file included from src/hb-aat-layout.hh:32:
In file included from src/hb-ot-shape.hh:32:
In file included from src/hb-ot-map.hh:32:
src/hb-buffer.hh:335:15: error: an attribute list cannot appear here
HB_INTERNAL HB_NODISCARD bool move_to (unsigned int i); /* i is output-buffer index. */
^~~~~~~~~~~~
https://app.circleci.com/pipelines/github/harfbuzz/harfbuzz/1693/workflows/77459205-a189-45d3-bc58-52a8fd952c3f/jobs/155912/parallel-runs/0/steps/0-110?invite=true
|
|
15f3ef01
|
2021-03-15T15:36:47
|
|
[test] Fix output format
|
|
8450f43a
|
2021-03-15T15:18:06
|
|
[buffer] HB_NODISCARD next_glyph()
|
|
f4bc7673
|
2021-03-15T14:54:45
|
|
[buffer] Implement copy_glyph() in terms of output_info()
|
|
f73982a6
|
2021-03-15T14:52:19
|
|
[buffer] Implement replace_glyph() in terms of replace_glyphs(1,1)
I get exact same binary size with this, suggesting that compiler is
optimizing these as needed.
|
|
862f9134
|
2021-03-15T14:48:50
|
|
[buffer] Implement output_glyph() in terms of replace_glyphs(0,1)
To my surprise, saves ~20kb in my build (non-size-optimized) build.
The output_glyph() method is never used in the fast paths, so doesn't
matter if is not fully optimized for the special case it is.
|
|
34a1204f
|
2021-03-15T14:39:06
|
|
[buffer] HB_NODISCARD output_glyph()
Also, generalize and use replace_glyphs() in morx where output_glyph() was used
in a loop.
|
|
07315d9c
|
2021-03-15T22:37:02
|
|
[ci] Don’t install meson from its master branch
We are testing Harfbuzz not meson!
|
|
e6be9eb4
|
2021-03-15T14:12:10
|
|
[buffer] HB_NODISCARD output_info()
|
|
2a0dbb3e
|
2021-03-15T14:10:39
|
|
[buffer] HB_NODISCARD copy_glyph()
|
|
b05e5d9a
|
2021-03-15T14:08:08
|
|
[buffer] HB_NODISCARD next_glyphs()
|
|
4ae8aab8
|
2021-03-15T14:01:52
|
|
[buffer] HB_NODISCARD has_separate_output()
|
|
8d3701f5
|
2021-03-15T14:01:32
|
|
[buffer] HB_NODISCARD in_error()
|
|
41e05479
|
2021-03-15T14:00:00
|
|
[buffer] HB_NODISCARD shift_forward()
|