|
f739e1dc
|
2021-05-11T11:44:32
|
|
[subset] subset both CPAL and COLRv1
|
|
466e1fdf
|
2021-05-26T14:22:21
|
|
[subset] remove unnessecary brackets.
|
|
2c137045
|
2021-05-20T16:22:04
|
|
[subset] Optimize set iteration by caching the last found page map index.
Reuse it if possible on consecutive calls to next(). Will signifcantly speed up cases where the entire set is iterated. In local testing iterating a very large set was 10x faster.
|
|
58323729
|
2021-05-26T14:06:02
|
|
Add cmp() method for major to page map.
|
|
1bb00cd5
|
2021-05-26T14:18:32
|
|
[subset] add num-iterations flag to util/hb-subset.
|
|
9e5738a8
|
2021-05-26T15:12:39
|
|
[set] Okay, giving up on constexpr till C++14
../src/hb-set.hh:213:89: error: call to non-'constexpr' function 'const elt_t& hb_vector_size_t<elt_t, byte_size>::operator[](unsigned int) const [with elt_t = long long unsigned int; unsigned int byte_size = 64]'
|
|
21d1034d
|
2021-05-26T14:31:05
|
|
[meson] Remove expat.wrap that we don’t use directly
Fixes https://github.com/harfbuzz/harfbuzz/issues/2987
|
|
fac0bc78
|
2021-05-26T14:44:58
|
|
[meson] Drop more wraps we don’t use directly
|
|
90fa558a
|
2021-05-26T15:05:48
|
|
[set] Another try at constexpr to make msvc happy
|
|
bf5d4a63
|
2021-05-26T14:27:02
|
|
[set] Add TODO
|
|
11d03f1f
|
2021-05-26T14:26:05
|
|
[set] Mark a couple methods as constexpr
|
|
d2829ad3
|
2021-05-26T14:24:27
|
|
[set] Refactor code into page_t::is_subset()
|
|
e47e44a8
|
2021-05-26T14:19:27
|
|
[set] Whitespace
|
|
2000f47a
|
2021-05-19T00:34:09
|
|
[set] Compute is_subset by comparing pages.
Test subsets one page at a time instead of by codepoints. On my machine
this is about 250x faster than the previous implementation.
|
|
1dffb553
|
2021-05-18T12:31:14
|
|
Chromium build fixes for C++ 17 warning and missing _remap_indexes
Use class instead of typename, move _remap_indexes out of #ifndef.
Fixes #2979
|
|
89df3539
|
2021-05-13T11:45:32
|
|
[aat] Add testcase for Apple Color Emoji couple-with-skin-tones sequence.
|
|
bbc5fc37
|
2021-05-13T11:39:09
|
|
[aat] If shaping via morx, don't adjust mark positioning when zeroing widths.
|
|
4f1e8d2b
|
2021-05-05T11:11:43
|
|
[aat] Update glyph properties from GDEF if available when doing a replacement.
|
|
5e0ec33b
|
2021-05-12T14:46:54
|
|
Error when link width not in [2, 4]
|
|
b23f29bf
|
2021-04-17T09:59:45
|
|
[subset] Add subset () method for COLRv1 Paint tables, BaseGlyphV1List and LayerV1List
Also add support for Offset24 in serializer and repacker
|
|
413769bf
|
2021-05-12T14:14:06
|
|
Add hb-ot-color-colrv1-closure.hh to sources list.
|
|
de0eba20
|
2021-05-12T14:05:34
|
|
Remove array for visited_paint.
|
|
e59ffe54
|
2021-04-01T12:01:19
|
|
[subset] COLRv1 layer/palette indices closure
|
|
a08900b7
|
2021-05-04T16:48:41
|
|
[subset] fix failing colrv0 subsetting when font has composite glyphs.
Composite glyph collection was happening along side colrv0 glyph collection which meant it was possible to miss grabbing the component glyphs for a glyph added by colrv0.
|
|
b54d9b69
|
2021-05-06T06:22:48
|
|
start
|
|
b07b97d5
|
2021-03-29T10:39:38
|
|
[subset] Add more Noto Nastaliq test cases.
|
|
b37f03f1
|
2021-05-04T02:07:06
|
|
2.8.1
|
|
d3e84413
|
2021-05-02T01:03:21
|
|
[ci] Drop macos-10_13_6-aat-fonts job
This version of macOS is no longer supported by Homebrew, it takes 26
minutes to brew the dependencies before it fails.
|
|
517d68b2
|
2021-05-01T23:50:39
|
|
[ci] Pin fedora 33 docker image
g-ir-scanner is broken on 34 image:
FAILED: src/HarfBuzz-0.0.gir
/usr/bin/g-ir-scanner --no-libtool --namespace=HarfBuzz --nsversion=0.0 --warn-all --output src/HarfBuzz-0.0.gir --c-include=hb-gobject.h --cflags-begin -DHB_NO_SINGLE_HEADER_ERROR -DHAVE_GOBJECT -DHB_EXTERN= --cflags-end -I/root/project/src -I/root/project/build/src -I./. -I../. --filelist=/root/project/build/src/libharfbuzz-gobject.so.0.20800.0.p/HarfBuzz_0.0_gir_filelist --include=GObject-2.0 --symbol-prefix=hb --symbol-prefix=hb_gobject --identifier-prefix=hb_ --pkg-export=harfbuzz-gobject --cflags-begin -DHAVE_CONFIG_H -I./. -I../. -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -I./src/. -I../src/. -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/gobject-introspection-1.0 --cflags-end --add-include-path=/usr/share/gir-1.0 -L/root/project/build/src --extra-library=harfbuzz --library harfbuzz-gobject -L/root/project/build/src -L/root/project/build/src --extra-library=glib-2.0 --extra-library=gobject-2.0 --extra-library=m --extra-library=freetype --extra-library=girepository-1.0 --sources-top-dirs /root/project/subprojects/ --sources-top-dirs /root/project/build/subprojects/
../src/hb-buffer.cc:641: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-face.cc:192: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-font.cc:551: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-font.cc:1519: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-map.cc:43: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-ot-name.cc:55: Warning: HarfBuzz: unexpected annotation: out
../src/hb-set.cc:43: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-shape-plan.cc:173: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-shape-plan.cc:201: Warning: HarfBuzz: unknown annotation: xconstructor
../src/hb-unicode.cc:172: Warning: HarfBuzz: unknown annotation: xconstructor
g-ir-scanner: link: gcc -pthread -o /root/project/build/tmp-introspecta9rymai3/HarfBuzz-0.0 /root/project/build/tmp-introspecta9rymai3/HarfBuzz-0.0.o -L. -Wl,-rpath,. -Wl,--no-as-needed -L/root/project/build/src -Wl,-rpath,/root/project/build/src -L/root/project/build/src -Wl,-rpath,/root/project/build/src -L/root/project/build/src -Wl,-rpath,/root/project/build/src -lharfbuzz-gobject -lharfbuzz -lglib-2.0 -lgobject-2.0 -lm -lfreetype -lgirepository-1.0 -lgio-2.0 -lgobject-2.0 -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 -lglib-2.0
ldd: error: you do not have read permission for `/root/project/build/tmp-introspecta9rymai3/HarfBuzz-0.0'
Traceback (most recent call last):
File "/usr/bin/g-ir-scanner", line 99, in <module>
sys.exit(scanner_main(sys.argv))
File "/usr/lib64/gobject-introspection/giscanner/scannermain.py", line 599, in scanner_main
shlibs = create_binary(transformer, options, args)
File "/usr/lib64/gobject-introspection/giscanner/scannermain.py", line 428, in create_binary
shlibs = resolve_shlibs(options, binary, options.libraries)
File "/usr/lib64/gobject-introspection/giscanner/shlibs.py", line 170, in resolve_shlibs
_resolve_non_libtool(options, binary, non_libtool))
File "/usr/lib64/gobject-introspection/giscanner/shlibs.py", line 106, in _resolve_non_libtool
output = subprocess.check_output(args)
File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib64/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ldd', '/root/project/build/tmp-introspecta9rymai3/HarfBuzz-0.0']' returned non-zero exit status 1.
ninja: build stopped: subcommand failed.
|
|
2b764764
|
2021-04-30T13:34:16
|
|
[subset] update test-subset-gpos expected files.
|
|
be50779c
|
2021-04-30T12:59:17
|
|
[subset] correct ClassDef format determination.
It was possible for glyph_min to be a glyph mapped to class zero which threw off the number of glyph calculation.
|
|
90713f27
|
2021-04-30T16:56:39
|
|
[hb-ot-layout] Document some return values
|
|
46362a95
|
2021-04-30T11:39:47
|
|
Merge pull request #2958 from googlefonts/layout_by_default_gr
[subset] Enable layout subsetting by default.
|
|
42bf8e3d
|
2021-04-26T12:31:44
|
|
[util] Disable chafa's truecolor mode
See https://github.com/harfbuzz/harfbuzz/pull/2959#issuecomment-827056111
|
|
c571a96e
|
2021-04-25T15:43:30
|
|
[ci] Disable Chafa on jobs that enables all auto features
No suitable versions are available on these setups.
|
|
8298c2f9
|
2021-04-23T18:37:58
|
|
[hb-view] Use Chafa for terminal graphics if available
This produces high-quality terminal graphics using symbols or sixels
according to the detected terminal capabilities.
Fixes #2430.
|
|
e25efb31
|
2021-04-23T19:09:37
|
|
[subset] consider all value formats when computing effective format.
|
|
84dbfacf
|
2021-04-15T16:52:11
|
|
[subset] fix collect_variation_idx in PairPosFormat2
|
|
d356d0f7
|
2021-04-23T17:41:09
|
|
[subset] optimize ValueRecord's for PairPosFormat1.
|
|
f9fbe481
|
2021-04-23T17:06:06
|
|
[subset] implement value record optimization for PairPosFormat2.
|
|
badb8e40
|
2021-04-23T16:32:56
|
|
[subset] use copy_values for PairPos serialize.
|
|
2f50283c
|
2021-04-23T15:21:30
|
|
[subset] Begin implementing ValueRecord optimization:
remove value records which have a zero value.
|
|
5df7c668
|
2021-04-22T16:45:14
|
|
[subset] In SinglePosFormat1 serialize only 1 value record.
Previously one record per glyph in the subset was serialized.
|
|
92757f68
|
2021-04-22T15:18:35
|
|
[subset] Don't drop anchor device tables when dropping hints. These may contain variation data.
Update subseting expected files to match latest version of fontTools.
|
|
6fddc2bb
|
2021-04-01T15:34:17
|
|
[subset] subset layout tables (G*) by default.
|
|
425ba1f4
|
2021-04-19T18:01:24
|
|
[subset] fixes infinite loop in hb_set_get_max().
Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
|
|
ec432106
|
2021-04-19T17:18:05
|
|
[subset] fix infinite loop caused by alloc failure in repacker.
Fixes: https://oss-fuzz.com/testcase-detail/5609112151916544.
|
|
0e845d97
|
2021-04-19T16:09:37
|
|
[subset] fix memory leak in repacker caused by failed alloc.
Fixes: https://oss-fuzz.com/testcase-detail/5616763250278400.
|
|
3fb62cdc
|
2021-04-05T15:48:34
|
|
[subset] fail on offset overflow in tables that we don't repack.
Fixes: https://oss-fuzz.com/testcase-detail/5229304507138048
|
|
19e096aa
|
2021-04-16T14:35:04
|
|
Merge pull request #2067 from harfbuzz/null-size
Avoid undefined-behavior, another try
|
|
ed2ee8a8
|
2021-04-16T13:53:43
|
|
Revert "Disable -Wunused-macros under GCC"
This reverts commit 1b1413246b8b4a9c6f7e0aac16afd6d110c142cf.
Err. It wasn't working. We already have that disabled in the files it
is warning about. Doesn't work.
|
|
47cbf8f2
|
2021-03-30T21:01:44
|
|
[test] Silence more compiler warnings
|
|
1b141324
|
2021-03-30T20:54:20
|
|
Disable -Wunused-macros under GCC
Since the pragram in hb-ot-shape-complex-indic-table.cc didn't seem to
silence GCC, eg:
../../src/hb-ot-shape-complex-indic-table.cc:55: warning: macro "ISC_TL" is not used [-Wunused-macros]
55 | #define ISC_TL INDIC_SYLLABIC_CATEGORY_TONE_LETTER /* 7 chars; Tone_Letter */
disable it at compiler level.
|
|
23a28f5a
|
2021-04-16T13:22:05
|
|
Avoid undefined-behavior
If a struct had (because it's a union) sizeof that is larger than the null_size,
we were providing only null_size bytes for its Null object. We know we'd never
access beyond that, but is undefined-behavior nonetheless according to the
standard.
The alternative fix would have required use of flexible-arrays, which are not
standard and have their own issues in various compiler. We've discussed that
extensively in the follow Mozilla issue (currently locked; I've asked that it
be opened):
https://bugzilla.mozilla.org/show_bug.cgi?id=1577584
Part of
https://github.com/harfbuzz/harfbuzz/pull/2067
|
|
499248c5
|
2021-04-16T13:14:48
|
|
[blob] Use min_size, instead of null_size in .as<T>()
Part of https://github.com/harfbuzz/harfbuzz/pull/2067
|
|
a4fb5da9
|
2021-04-16T14:10:37
|
|
[ci] Enable DirectWrite in win32 tarballs
|
|
f2240d12
|
2021-04-16T02:37:11
|
|
[ci] Use -j2 for make and ninja in distcheck job
Lets see if this makes it faster without crashing gcc.
|
|
f5c922b7
|
2021-04-16T01:47:34
|
|
[ci] Try to stop distcheck job from crashing gcc
|
|
e116058b
|
2021-04-15T13:52:19
|
|
[directwrite] Use correct UTF-16 string length
Fixes https://github.com/harfbuzz/harfbuzz/issues/2474
|
|
668acff1
|
2021-04-12T14:25:19
|
|
similarly improve comments on Hebrew ccc 18 & 19
Should have committed this along with commit 9658435a25c2ba82 but forgot.
|
|
43d95520
|
2021-04-12T14:01:56
|
|
improve comments on Hebrew ccc 18 & 19
improve comments to reflect that:
ccc 18 includes both "flavors" of qamats: qamats [gadol] and qamats qatan
ccc 19 includes both "flavors" of holam: holam [not haser for vav] and holam haser for vav
This code and its comments may have been written before these code points were added to Unicode.
I.e. originally, these comments may have been complete, but they may have become incomplete in the meantime.
|
|
4cc4cd3b
|
2021-04-10T14:11:23
|
|
[docs] Fix spelling typo (#2945)
|
|
9dc9f038
|
2021-04-08T11:00:17
|
|
[subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/5858518134554624
|
|
430a67ce
|
2021-04-01T12:01:19
|
|
[subset] COLRv1 struct definitions
|
|
553ffaf6
|
2021-04-07T17:15:32
|
|
[subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/6382598554255360
avoid writing to null pointer
|
|
4af5dace
|
2021-04-07T10:56:49
|
|
[subset] add fuzzer testcase
|
|
8b686afe
|
2021-04-06T11:33:38
|
|
[subset] add unlikely().
|
|
64122b5a
|
2021-04-05T12:53:08
|
|
[subset] don't visit lookup if covered glyph set has failed.
If covered glyph set is in error then the same lookup can be recursed into repeatedly potentially causing a fuzzer timeout. Fixes: https://oss-fuzz.com/testcase-detail/5416421032067072.
|
|
4ec18c85
|
2021-04-02T15:33:54
|
|
[subset] add subsetting tests with drop hints and layout subsetting enabled.
|
|
6f98a8ed
|
2021-04-02T14:37:10
|
|
[subset] Anchor should only use format 1 when hints are dropped.
Refactor Anchor to have a subset method instead of copy. This also allows
use to use serialize_subset in several places which simplifies calculating
offset bases.
|
|
71d6d156
|
2021-04-05T12:03:17
|
|
[subset] clamp distance to prevent shifting outside of the limits of int64.
Fixes https://oss-fuzz.com/testcase-detail/4961171477233664.
|
|
fcacd177
|
2021-04-05T22:27:39
|
|
[ot] Update _hb_glyph_info_is_default_ignorable_and_not_hidden()
Used _hb_glyph_info_substituted() similar to the change made to
_hb_glyph_info_is_default_ignorable() in
7686ff854bbb9698bb1469dcfe6d288c695a76b7.
|
|
596f4258
|
2021-04-02T12:41:09
|
|
[subset] copy Lookup::markFilteringSet when subseting.
|
|
d3a2f999
|
2021-04-02T08:32:41
|
|
Fix up build
This was left out; oops.
|
|
c35d7863
|
2021-04-01T14:32:38
|
|
[subset] never drop the 'pref' feature.
Never ever drop feature 'pref', even if it's empty. Harfbuzz uses it to choose the shaper for Khmer.
|
|
092094f7
|
2021-04-01T15:47:21
|
|
Use as_array() and range loops in a few places
|
|
55e7f3fe
|
2021-04-01T13:35:30
|
|
[subset] Match FeatureVariationRecord dropping from fontTools.
Only drop records with no matching features that are at the end of the list. See: https://github.com/fonttools/fonttools/commit/cab7d13dc0883765cde435215c7d65e9212f152d
|
|
f0c78e02
|
2021-03-25T12:57:12
|
|
[subset] don't drop features referenced in a feature variation substitution.
|
|
dae99b77
|
2021-03-25T12:33:51
|
|
[subset] don't keep FeatureVariationRecord's with no subsittutions.
|
|
85b07287
|
2021-03-25T12:17:18
|
|
Add full variable font subsetting test.
|
|
c4b49075
|
2021-04-01T10:47:18
|
|
Update CMakeLists.txt
Keep the warning.
|
|
9945f327
|
2021-02-06T14:24:25
|
|
Test fix to export target include directories
|
|
b10741ca
|
2021-03-25T19:14:48
|
|
[subset] when closing glyphs in context lookups don't use a current glyph set if a lookup is already applied.
|
|
2773d057
|
2020-11-04T11:11:16
|
|
[subset] Add a test case using NotoNastaliqUrdu.
|
|
8ef4257d
|
2021-03-31T15:00:46
|
|
[sanitize] change max ops to track number of bytes processed.
Counting bytes as the operations is likely to be a better proxy for how
much work processing the table will cost vs. the current approach of
counting the number of sub-objects.
This should allow checks for max features, max scripts, etc. to be removed.
I tested this change against the full collection of fonts at https://github.com/google/fonts
and a max ops factor of 3 was sufficient to successfully sanitize all of them.
|
|
70110f6a
|
2021-03-31T17:04:02
|
|
Modify OffsetTo<>::sanitize() overflow check
The code in question was introduced in 70eb2ff682.
Rewrite it to not call sanitizer check_range() as we want to use
check_range() for byte accounting.
Part of https://github.com/harfbuzz/harfbuzz/pull/2923
|
|
4dba749d
|
2021-03-31T16:09:39
|
|
Add SortedArray{16,32}Of<>
|
|
5639e253
|
2021-03-31T16:04:43
|
|
Add Array16Of<>
|
|
2520a82d
|
2021-03-31T15:34:26
|
|
s/LArrayOf/Array32Of/g
|
|
5efe3609
|
2021-03-31T15:33:22
|
|
Rename (Unsized)OffsetListOf
|
|
6c4e0491
|
2021-03-31T15:31:32
|
|
s/OffsetArrayOf/Array16OfOffset16To/g
|
|
1fc6b69a
|
2021-03-31T15:30:35
|
|
s/UnsizedOffsetArrayOf/UnsizedArray16OfOffsetTo/g
|
|
2a54c9f7
|
2021-03-31T15:26:42
|
|
.
|
|
c539afb0
|
2021-03-31T13:28:25
|
|
[CFF] Use NNOffsetTo<> instead of OffsetTo<>
I'm pretty sure that's what is intended.
|
|
9b4b5849
|
2021-03-31T13:27:21
|
|
Fixup for recent OffsetTo<> changes
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
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
|