Log

Author Commit Date CI Message
Qunxin Liu f739e1dc 2021-05-11T11:44:32 [subset] subset both CPAL and COLRv1
Garret Rieger 466e1fdf 2021-05-26T14:22:21 [subset] remove unnessecary brackets.
Garret Rieger 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.
Garret Rieger 58323729 2021-05-26T14:06:02 Add cmp() method for major to page map.
Garret Rieger 1bb00cd5 2021-05-26T14:18:32 [subset] add num-iterations flag to util/hb-subset.
Behdad Esfahbod 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]'
Khaled Hosny 21d1034d 2021-05-26T14:31:05 [meson] Remove expat.wrap that we don’t use directly Fixes https://github.com/harfbuzz/harfbuzz/issues/2987
Khaled Hosny fac0bc78 2021-05-26T14:44:58 [meson] Drop more wraps we don’t use directly
Behdad Esfahbod 90fa558a 2021-05-26T15:05:48 [set] Another try at constexpr to make msvc happy
Behdad Esfahbod bf5d4a63 2021-05-26T14:27:02 [set] Add TODO
Behdad Esfahbod 11d03f1f 2021-05-26T14:26:05 [set] Mark a couple methods as constexpr
Behdad Esfahbod d2829ad3 2021-05-26T14:24:27 [set] Refactor code into page_t::is_subset()
Behdad Esfahbod e47e44a8 2021-05-26T14:19:27 [set] Whitespace
Kurt Kartaltepe 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.
Dominik Röttsches 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
Jonathan Kew 89df3539 2021-05-13T11:45:32 [aat] Add testcase for Apple Color Emoji couple-with-skin-tones sequence.
Jonathan Kew bbc5fc37 2021-05-13T11:39:09 [aat] If shaping via morx, don't adjust mark positioning when zeroing widths.
Jonathan Kew 4f1e8d2b 2021-05-05T11:11:43 [aat] Update glyph properties from GDEF if available when doing a replacement.
Garret Rieger 5e0ec33b 2021-05-12T14:46:54 Error when link width not in [2, 4]
Qunxin Liu 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
Garret Rieger 413769bf 2021-05-12T14:14:06 Add hb-ot-color-colrv1-closure.hh to sources list.
Garret Rieger de0eba20 2021-05-12T14:05:34 Remove array for visited_paint.
Qunxin Liu e59ffe54 2021-04-01T12:01:19 [subset] COLRv1 layer/palette indices closure
Garret Rieger 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.
tstuefe b54d9b69 2021-05-06T06:22:48 start
Garret Rieger b07b97d5 2021-03-29T10:39:38 [subset] Add more Noto Nastaliq test cases.
Khaled Hosny b37f03f1 2021-05-04T02:07:06 2.8.1
Khaled Hosny 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.
Khaled Hosny 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.
Garret Rieger 2b764764 2021-04-30T13:34:16 [subset] update test-subset-gpos expected files.
Garret Rieger 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.
Khaled Hosny 90713f27 2021-04-30T16:56:39 [hb-ot-layout] Document some return values
Behdad Esfahbod 46362a95 2021-04-30T11:39:47 Merge pull request #2958 from googlefonts/layout_by_default_gr [subset] Enable layout subsetting by default.
Behdad Esfahbod 42bf8e3d 2021-04-26T12:31:44 [util] Disable chafa's truecolor mode See https://github.com/harfbuzz/harfbuzz/pull/2959#issuecomment-827056111
Khaled Hosny c571a96e 2021-04-25T15:43:30 [ci] Disable Chafa on jobs that enables all auto features No suitable versions are available on these setups.
Hans Petter Jansson 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.
Garret Rieger e25efb31 2021-04-23T19:09:37 [subset] consider all value formats when computing effective format.
Qunxin Liu 84dbfacf 2021-04-15T16:52:11 [subset] fix collect_variation_idx in PairPosFormat2
Garret Rieger d356d0f7 2021-04-23T17:41:09 [subset] optimize ValueRecord's for PairPosFormat1.
Garret Rieger f9fbe481 2021-04-23T17:06:06 [subset] implement value record optimization for PairPosFormat2.
Garret Rieger badb8e40 2021-04-23T16:32:56 [subset] use copy_values for PairPos serialize.
Garret Rieger 2f50283c 2021-04-23T15:21:30 [subset] Begin implementing ValueRecord optimization: remove value records which have a zero value.
Garret Rieger 5df7c668 2021-04-22T16:45:14 [subset] In SinglePosFormat1 serialize only 1 value record. Previously one record per glyph in the subset was serialized.
Garret Rieger 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.
Garret Rieger 6fddc2bb 2021-04-01T15:34:17 [subset] subset layout tables (G*) by default.
Garret Rieger 425ba1f4 2021-04-19T18:01:24 [subset] fixes infinite loop in hb_set_get_max(). Fixes https://oss-fuzz.com/testcase-detail/5363902507515904
Garret Rieger ec432106 2021-04-19T17:18:05 [subset] fix infinite loop caused by alloc failure in repacker. Fixes: https://oss-fuzz.com/testcase-detail/5609112151916544.
Garret Rieger 0e845d97 2021-04-19T16:09:37 [subset] fix memory leak in repacker caused by failed alloc. Fixes: https://oss-fuzz.com/testcase-detail/5616763250278400.
Garret Rieger 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
Behdad Esfahbod 19e096aa 2021-04-16T14:35:04 Merge pull request #2067 from harfbuzz/null-size Avoid undefined-behavior, another try
Behdad Esfahbod 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.
Behdad Esfahbod 47cbf8f2 2021-03-30T21:01:44 [test] Silence more compiler warnings
Behdad Esfahbod 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.
Behdad Esfahbod 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
Behdad Esfahbod 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
Khaled Hosny a4fb5da9 2021-04-16T14:10:37 [ci] Enable DirectWrite in win32 tarballs
Khaled Hosny 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.
Khaled Hosny f5c922b7 2021-04-16T01:47:34 [ci] Try to stop distcheck job from crashing gcc
Khaled Hosny e116058b 2021-04-15T13:52:19 [directwrite] Use correct UTF-16 string length Fixes https://github.com/harfbuzz/harfbuzz/issues/2474
Ben Denckla 668acff1 2021-04-12T14:25:19 similarly improve comments on Hebrew ccc 18 & 19 Should have committed this along with commit 9658435a25c2ba82 but forgot.
Ben Denckla 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.
Ambient Lighter 4cc4cd3b 2021-04-10T14:11:23 [docs] Fix spelling typo (#2945)
Qunxin Liu 9dc9f038 2021-04-08T11:00:17 [subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/5858518134554624
Qunxin Liu 430a67ce 2021-04-01T12:01:19 [subset] COLRv1 struct definitions
Qunxin Liu 553ffaf6 2021-04-07T17:15:32 [subset] fix for fuzzer testcase: https://oss-fuzz.com/testcase-detail/6382598554255360 avoid writing to null pointer
Qunxin Liu 4af5dace 2021-04-07T10:56:49 [subset] add fuzzer testcase
Garret Rieger 8b686afe 2021-04-06T11:33:38 [subset] add unlikely().
Garret Rieger 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.
Garret Rieger 4ec18c85 2021-04-02T15:33:54 [subset] add subsetting tests with drop hints and layout subsetting enabled.
Garret Rieger 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.
Garret Rieger 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.
Khaled Hosny 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.
Garret Rieger 596f4258 2021-04-02T12:41:09 [subset] copy Lookup::markFilteringSet when subseting.
Behdad Esfahbod d3a2f999 2021-04-02T08:32:41 Fix up build This was left out; oops.
Garret Rieger 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.
Behdad Esfahbod 092094f7 2021-04-01T15:47:21 Use as_array() and range loops in a few places
Garret Rieger 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
Garret Rieger f0c78e02 2021-03-25T12:57:12 [subset] don't drop features referenced in a feature variation substitution.
Garret Rieger dae99b77 2021-03-25T12:33:51 [subset] don't keep FeatureVariationRecord's with no subsittutions.
Garret Rieger 85b07287 2021-03-25T12:17:18 Add full variable font subsetting test.
Behdad Esfahbod c4b49075 2021-04-01T10:47:18 Update CMakeLists.txt Keep the warning.
Timo Suoranta 9945f327 2021-02-06T14:24:25 Test fix to export target include directories
Garret Rieger 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.
Garret Rieger 2773d057 2020-11-04T11:11:16 [subset] Add a test case using NotoNastaliqUrdu.
Garret Rieger 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.
Behdad Esfahbod 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
Behdad Esfahbod 4dba749d 2021-03-31T16:09:39 Add SortedArray{16,32}Of<>
Behdad Esfahbod 5639e253 2021-03-31T16:04:43 Add Array16Of<>
Behdad Esfahbod 2520a82d 2021-03-31T15:34:26 s/LArrayOf/Array32Of/g
Behdad Esfahbod 5efe3609 2021-03-31T15:33:22 Rename (Unsized)OffsetListOf
Behdad Esfahbod 6c4e0491 2021-03-31T15:31:32 s/OffsetArrayOf/Array16OfOffset16To/g
Behdad Esfahbod 1fc6b69a 2021-03-31T15:30:35 s/UnsizedOffsetArrayOf/UnsizedArray16OfOffsetTo/g
Behdad Esfahbod 2a54c9f7 2021-03-31T15:26:42 .
Behdad Esfahbod c539afb0 2021-03-31T13:28:25 [CFF] Use NNOffsetTo<> instead of OffsetTo<> I'm pretty sure that's what is intended.
Behdad Esfahbod 9b4b5849 2021-03-31T13:27:21 Fixup for recent OffsetTo<> changes
Behdad Esfahbod ad28f973 2021-03-31T12:49:14 Rename offset types to be explicit about their size Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
Garret Rieger c5c13006 2021-03-31T11:23:46 [subset] fix memory leaks found in https://oss-fuzz.com/testcase-detail/5179935334465536
Behdad Esfahbod bd2950b3 2021-03-31T11:36:36 Make VariationStore::get_delta(outer, inner) private
Behdad Esfahbod 934675a4 2021-03-31T11:34:41 Use VarIdx in VariationDevice
Behdad Esfahbod 0f7f7536 2021-03-31T11:31:49 [hvar] Change variation-index types from "unsigned int" to uint32_t