Log

Author Commit Date CI Message
Behdad Esfahbod e014c6fa 2021-08-05T13:24:59 [util/main-font-text] Move eol from template arg to main() arg
Behdad Esfahbod 463411a1 2021-08-05T11:44:35 [util] Remove unused option_group_t
Behdad Esfahbod 3362b48f 2021-08-05T11:30:39 [util] Templatize add_group logic
Behdad Esfahbod e57dd668 2021-08-05T10:33:31 [util] Initialize struct members inline
Behdad Esfahbod 21f1054d 2021-08-04T20:23:48 [util/hb-subset] Keep face around instead of font
Behdad Esfahbod fe90fbeb 2021-08-05T11:22:20 [util] Remove unused pre_parse callback logic
Behdad Esfahbod 8588173e 2021-08-05T11:43:25 [util] Rework post_parse() handling
Behdad Esfahbod 09e4d7dd 2021-08-05T11:21:20 [util] Simplify output_options_t
Behdad Esfahbod e109f9a6 2021-08-05T11:05:51 [util] Collect cmdline arg options outside of constructor
Garret Rieger 8c0c217b 2021-08-06T10:45:38 [subset] fail reference blob in face builder if allocation for table sorting fails. Fixes https://oss-fuzz.com/testcase-detail/5041767803125760
Garret Rieger e5bfd49a 2021-08-05T14:03:25 [subset] don't allow table adds for tag == -1.
Garret Rieger 222b74f0 2021-08-05T11:39:26 [subset] don't leak memory for duplicate tables.
Behdad Esfahbod f7a9c3ea 2021-08-05T13:05:07 [open-file] Use hb_is_source_of instead of hb_is_iterator
Behdad Esfahbod fa90cb8a 2021-08-05T12:31:06 Whitespace again
Behdad Esfahbod a110a47e 2021-08-05T12:28:39 Whitespace
Behdad Esfahbod 2cb8c928 2021-08-05T12:27:22 [face] Let hashmap derive invalid key/value types Works now with the previous two fixes.
Behdad Esfahbod 95c888e1 2021-08-05T12:27:02 [meta] Define hb_int_min for pointer types as nullptr
Behdad Esfahbod 407a112e 2021-08-05T12:23:53 [meta] Make hb_is_signed/hb_is_unsigned work on all types They were failing if type was non-scalar, eg. pointer.
Behdad Esfahbod baf2166a 2021-08-05T12:07:25 [meta] Use hb_true_type/hb_false_type more
Behdad Esfahbod 74ad5ddc 2021-08-05T11:51:54 [face] Minor cleaning of previous commit
Garret Rieger c2ee1fdd 2021-08-04T16:42:49 [subset] remove unsed table_entry struct.
Garret Rieger dea0fe57 2021-08-04T16:36:20 [subset] discard extra copies of a table in face builder. Fixes #2361. Stores tables in the builder in a hashmap so you end up with at most one copy of each table. Table serialization order is now based on tag sort order instead of order of insertion into the builder.
Behdad Esfahbod 368e9578 2021-08-05T10:16:13 [ot-shape] Add comment re `vert` feature
Garret Rieger 2c024dc3 2021-08-04T11:38:38 [subset] prune redundant cmap12 subtables. If the post subset cmap12 table is equivalent to another cmap subtable don't include the 12 table in the final subset. Matches change https://github.com/fonttools/fonttools/pull/2146 from fontTools.
Khaled Hosny 84946e4d 2021-08-05T00:05:26 [test] Suggest updating the expectation if ttx matches https://github.com/harfbuzz/harfbuzz/issues/3089#issuecomment-892208892
Behdad Esfahbod 09c3b82f 2021-07-29T17:49:10 [buffer] When shifting forward, leave no gap Trying to see if this fixes the fuzzer issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36236
Behdad Esfahbod 5086e105 2021-07-29T17:03:55 [test] Add failing fuzzer test case From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36236 https://oss-fuzz.com/testcase-detail/5061207689134080
Behdad Esfahbod a150baf3 2021-08-04T11:53:27 [ot-map] Allocate top mask bit as global bit Avoids undefined-shift of 32 in the following line: map->mask = (1u << (next_bit + bits_needed)) - (1u << next_bit) Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=1219263
Khaled Hosny f698fe5a 2021-08-04T12:08:18 [test] Always fail subset tests if hashes don’t match Regardless of the pre sentience or absence of fonttools.
Behdad Esfahbod e80c86ff 2021-08-04T10:24:14 [coretext] Fix formatting
Behdad Esfahbod db6fbe29 2021-08-03T10:13:17 [util/hb-subset] Use driver_t<> in outer block as well https://github.com/harfbuzz/harfbuzz/commit/a363ce573c3aa706de3aecf0515519a5d7842af2#r54282223
Simon Cozens 66aef281 2021-08-04T13:34:52 Support passing variations to coretext shaper
Behdad Esfahbod f25daa47 2021-08-04T00:06:32 Merge pull request #3110 from harfbuzz/subset-tests-fast [test] Make subset tests fast
Khaled Hosny 9f544e50 2021-08-04T04:20:14 [test] Don’t skip subset tests early Check for FontTools only when the checksums are mismatching.
Khaled Hosny b0841533 2021-08-04T04:12:31 [test] Remove subset tests from the slow suite
Khaled Hosny 7ccc52b0 2021-08-04T03:57:18 [test] Compare sha256 hash before TTX dumps Most of time the files are identical, so instead of comparing the TTX dump we can check sha256 hashes of the files first and if they match, we don’t have to check the TTX dumps at all, making the subset tests orders of magnitude faster. time meson test --suite=subset down from: real 0m19.418s user 0m38.171s sys 0m3.587s to: real 0m3.102s user 0m8.622s sys 0m1.701s The expected files have been replaced by hb-subset output so they are bit-identical where FontTools output might not. The generate-expected-outputs.py now compares the hb-subset output with fontttols subset and errors of they don’t match.
Khaled Hosny 770fbd5a 2021-08-04T00:07:23 Revert "[test] Speed-up subset tests by saving TTX dump" This reverts commit 278f44dcee34cea25403e42e06668f0afe2328c1.
Behdad Esfahbod 62a535f1 2021-08-03T10:11:27 [khmer] Fix comment Fixes https://github.com/harfbuzz/harfbuzz/issues/3104
Khaled Hosny 2cc9ed2b 2021-08-02T22:00:11 [test] More lookup_collect_glyphs() tests
Khaled Hosny 06640374 2021-08-02T19:52:59 [test] More lookup_collect_glyphs() tests
Khaled Hosny ecdd8e3f 2021-08-02T19:36:20 [test] More lookup_collect_glyphs() tests
Khaled Hosny f998d7e1 2021-08-02T16:10:13 [test] Add API test for lookup_collect_glyphs() We don’t seem to have any tests exercising this API at all, and it is a good check of GSUB/GPOS code.
Behdad Esfahbod 47d47e8c 2021-08-01T22:12:08 [util/hb-shape/hb-subset] Don't terminate on first error in batch mode There's no reason to quit processing. The failure is already communicated via stdout in both cases.
Behdad Esfahbod a363ce57 2021-08-01T22:11:13 [util/hb-subset] Minor refactor of batch mode To match recent changes to hb-shape.
Khaled Hosny 10e73d18 2021-08-01T11:11:12 [test] Add batch mode to hb-subset and use it time meson test --suite=subset down from: real 0m22.822s user 0m44.561s sys 0m9.255s to: real 0m19.418s user 0m38.171s sys 0m3.587s Does not seem to help much, but it is something. Part of https://github.com/harfbuzz/harfbuzz/issues/3089
Behdad Esfahbod 75f314c4 2021-08-01T12:06:49 Merge pull request #3103 from harfbuzz/test-reference [test] Remove unused shaping tests reference mode
Khaled Hosny 1fd3a261 2021-08-01T19:38:39 [test] Remove unused shaping tests reference mode
Behdad Esfahbod ed99c806 2021-08-01T08:14:59 [util/hb-shape] Refactor driver type duplication
Behdad Esfahbod 05cf8128 2021-08-01T07:59:25 [util/hb-shape] Fix use of EOF as end-of-line EOF is -1, which was being treated as a valid char (255). Use int instead.
Behdad Esfahbod ee7473b8 2021-07-30T12:55:28 [mutex] Remove unused HB_MUTEX_IMPL_INIT / HB_MUTEX_INIT https://github.com/harfbuzz/harfbuzz/pull/3100#issuecomment-890089096
Behdad Esfahbod 0e37c07f 2021-07-30T12:52:59 Revert "Construct user_data in hb_object" This reverts commit a78eb43c79e7a2d870add6b686426748e104b7b3. See: https://github.com/harfbuzz/harfbuzz/pull/3100#issuecomment-890088227
Behdad Esfahbod 5dc4cd71 2021-07-30T12:37:40 [blob] Minor change in destruction No semantic change.
Behdad Esfahbod 7cbcdaf6 2021-07-30T11:26:46 Whitespace
Behdad Esfahbod 5d283aa0 2021-07-30T10:15:09 Merge pull request #3095 from harfbuzz/subset-tests-speed [test] Speed-up subset tests by saving TTX dump
Behdad Esfahbod bbeb3a62 2021-07-30T09:54:55 Merge pull request #3096 from googlefonts/multi_flag [subset] change input and plan flags to be bit sets.
Garret Rieger b63ac571 2021-07-29T18:23:41 [subset] bail if collection region indices is in error.
Garret Rieger f9d8e4a9 2021-07-29T15:25:41 [subset] switch ..._set_flags to not take a mask.
Garret Rieger 46d4a5e6 2021-07-29T15:07:13 [subset] Convert subset plan to use a flags bit set.
Garret Rieger 3d534b14 2021-07-29T11:52:14 [subset] convert subset input flags into bit flags. Store the flags in a bit set. Updates the public api to work with the bit set directly.
Khaled Hosny f6c67a5f 2021-07-30T02:20:19 [test] Open file in UTF-8 It is 2021 and Python still does not default to UTF-8 on Windows!
Khaled Hosny bafbade0 2021-07-30T01:42:45 [test] Force FontTools to use \n on all platforms On Windows in helfuly uses \r\n.
Ben Wagner a78eb43c 2021-07-29T17:35:25 Construct user_data in hb_object hb_object's user_data is created lazily. The previous implementation of hb_object_set_user_data created space for the user_data but did not actually construct it. This means that hb_user_data_array_t's lock was not constructed. If hb_mutex_t is backed by an implementation which requires that it be constructed (not just zero initialized) then errors will occur when taking the lock when setting the user data. Change hb_object_set_user_data to construct the user_data in the created space and hb_object_fini to call the destructor.
Khaled Hosny 278f44dc 2021-07-29T23:43:56 [test] Speed-up subset tests by saving TTX dump Speed-up subset tests by saving TTX dump of expected output instead of generating it each time the tests are run. Cuts down meson test --suite=subset on my system from: real 0m38.977s user 1m12.024s sys 0m10.547s to: real 0m22.291s user 0m44.548s sys 0m9.221s Part of https://github.com/harfbuzz/harfbuzz/issues/3089
Behdad Esfahbod 30579f5a 2021-07-29T11:19:13 [set] Document & use open-ended del_range()
Khaled Hosny 72489f3e 2021-07-29T18:20:03 [test] Free memory in hb-aots-tester
Khaled Hosny 895162d6 2021-07-29T18:03:00 [test] Account for mark zeroing in AOTS tests The AOTS are not written with the face that mark glyphs gets their advances zeroed. Taking this into account makes 16 more tests to pass.
Khaled Hosny e65bf605 2021-07-29T17:36:09 [test] make this test runner less verbose Print the command being called once and in a way the can be manually run.
Behdad Esfahbod 2d54c346 2021-07-28T18:20:53 [subset/VarStore] Fix OOM in fuzzer test The test in question is the one added in c68a00b92eb62fdc79f9a2bd1fc7a6acc24a3602. Culprit is that it's allocating lots of memory because of region_indices that are out-of-range anyway. So, try to filter those out first.
Behdad Esfahbod ff1fe25a 2021-07-28T18:02:52 [VarStore] Rename internal get_scalars() to get_region_scalars()
Behdad Esfahbod d7541f7b 2021-07-29T00:09:24 [util/hb-shape] Free cached resources on termination
Behdad Esfahbod ad03f34d 2021-07-28T19:05:12 [util/hb-shape] Cache blob/face in batch mode
Khaled Hosny 9a7ff54b 2021-07-29T01:52:55 [test] Write one sequence per-line https://github.com/harfbuzz/harfbuzz/pull/3087#issuecomment-888691436
Khaled Hosny ddf87ffb 2021-07-29T01:12:46 [test] Add generated tests for emoji clusters Fixes https://github.com/harfbuzz/harfbuzz/issues/3017 Uses AdobeBlank2.ttf from: https://github.com/adobe-fonts/adobe-blank-2 instead of a dummy empty font so that everything maps to GID 1 and control code points are kept instead of being dropped because there is not space glyph (otherwise we’d need to identify control code points somehow when generating the expectations).
Behdad Esfahbod f0a1892f 2021-07-28T17:36:22 [serialize] Remove unnecessary pointer indirection
Behdad Esfahbod 1c511ed6 2021-07-28T17:33:26 [subset] Simplify VarStore serialization
Behdad Esfahbod ad4c6924 2021-07-28T16:50:34 [subset] Simplify VarStore serialize
Behdad Esfahbod 25dee609 2021-07-28T13:58:24 [sanitize] Revert some from c68a00b92eb62fdc79f9a2bd1fc7a6acc24a3602 That overflow check was already happening in arrayZ.sanitize().
Behdad Esfahbod 6fe0d7d6 2021-07-28T12:06:49 [GSUB] If MultipleSubst is applied to a ligature-component, preserve lig-id Fixes https://github.com/harfbuzz/harfbuzz/issues/3069
Behdad Esfahbod b926fb9b 2021-07-28T11:58:10 Whitespace
Behdad Esfahbod cc3a7cee 2021-07-28T11:53:06 Fix macro-in-macro invocation ../src/hb-ot-color-colr-table.hh:980:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] \#if COLRV1_ENABLE_SUBSETTING == 1
Behdad Esfahbod 087e2705 2021-07-28T11:42:31 Fix signed-ness error in 0ded6a70c829284a8220ce30a405b0a974061df4
Garret Rieger f3e03153 2021-07-27T14:40:15 Revert "[ci] Bin FontTools version due to recent COLRv1 changes" This reverts commit 163748b5059e7b02a8ea57e263b009020a3ed499.
Garret Rieger acbd8b27 2021-07-27T14:31:18 [subset] temporarily disable COLRv1 subsetting. Currently COLRv1 spec is being changed so the subsetting implementation is out of sync. Disable subsetting by failing sanitization for COLRv1 tables and disable all colrv1 tests.
Behdad Esfahbod 5dae8297 2021-07-28T11:35:40 [util] Minor followup to https://github.com/harfbuzz/harfbuzz/pull/3083
Behdad Esfahbod 0ded6a70 2021-07-28T11:28:38 [subset] Fix another fuzzer issue Addition could overflow on 32bit arch. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36636 Fixes https://oss-fuzz.com/testcase-detail/5072358514753536
Khaled Hosny c65e1e08 2021-07-28T17:04:10 [test] Run AOTS cmap tests with ot font functions only We are not interested in testing FreeType cmap support. Fixes most format 4 tests. The remaining test seems to be peculiar, and I can’t find any cmap implementation that produces the expected output.
Khaled Hosny 8396c523 2021-07-28T16:29:43 [test] Add AOTS cmap tests Uses https://github.com/adobe-type-tools/aots/pull/3 Related to https://github.com/unicode-org/text-rendering-tests/issues/70 We don’t support format 4 or 8, so these tests are disabled. We support format 4 but most of the tests are failing, investigating.
Khaled Hosny 50379fbb 2021-07-28T16:13:49 [util] Don’t split text at new lines in batch mode In batch mode (which is used for testing) we are probably not interested in splitting text into lines as we could have split the string into different tests. This fixes a bunch of AOTS tests that use newlines as input.
Khaled Hosny 92b85749 2021-07-28T15:56:53 [util] Strip quotes when parsing features When running in batch mode, the quotes are not stripped by the shell and end up in the feature string. This breaks one of the AOTS tests. Alternatively, we can remove the quotes from the test files, not sure which is less hacky, though!
Khaled Hosny ad9559e3 2021-07-28T14:35:23 [tests] Make AOTS update.py work on macOS Use C++ compiler and make sure C++11 is used.
Khaled Hosny d84efca3 2021-07-28T13:17:41 [tests] Add missed test file to Makefile/meson It was introduced in 205737acdc268b1c90cf00bde2d2038519a8bf48 but was not actually used. See https://github.com/harfbuzz/harfbuzz/issues/2098
Garret Rieger 09474d8d 2021-06-29T16:07:14 [subset] Fix fuzzer timeout in add_gid_and_children. The composite glyph graph isn't check for max operations by sanitize so track an operations count during the graph traversal.
Behdad Esfahbod c68a00b9 2021-07-27T13:25:22 [subset] Fix possible overflows in VarRegionList serialize Fixes https://oss-fuzz.com/testcase-detail/5362189182566400
Behdad Esfahbod 7b8464b6 2021-07-27T13:15:07 [serialize] Check for overflow in allocate_size() If size was > INT_MAX, then the out-of-room check was failing to perform as intended. Part of fixing https://oss-fuzz.com/testcase-detail/5362189182566400
Behdad Esfahbod bf2c87bf 2021-07-27T13:10:41 Add hb_memcpy() that does len=0 check
Khaled Hosny 5f801da9 2021-07-27T20:54:19 [hb-ms-features] Move code out of header file
Khaled Hosny 990c15db 2021-07-27T20:43:53 [hb-ms-features] Rename types to be less general
Khaled Hosny 69199211 2021-07-27T19:51:23 [uniscribe/directwrite] Move feature setup to shared file Fixes https://github.com/harfbuzz/harfbuzz/issues/3070
Garret Rieger fc7f7781 2021-07-27T12:21:19 [subset] add a note to hb-subset on what is and isn't supported (#3076)
Behdad Esfahbod 3e4f006f 2021-07-27T09:28:47 Merge pull request #3079 from harfbuzz/windows-getenv Don’t disable getenv on Windows