src


Log

Author Commit Date CI Message
Garret Rieger 59deb754 2021-08-24T17:06:14 [subset] rename _collect_subset_layout to _collect_layout_indices. Better describes what the function does.
Garret Rieger f2441a4b 2021-08-24T15:53:32 [subset] Remove retain all layout features flag. Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
Behdad Esfahbod c90678cb 2021-08-24T11:11:12 [set] One more try to fix things That I don't let a "make check -j10" run finish before pushing things out means either that we need to speed up our build / test process, or I need a faster laptop...
Behdad Esfahbod 35797696 2021-08-24T10:55:12 [set] One more try at fixing clear() on empty set
Garret Rieger fb07f8f8 2021-08-23T15:33:57 During subset input creation check for set alloc failures and fail if encountered.
Behdad Esfahbod b5177d21 2021-08-24T10:43:37 [set] Fix seam exposed by previous commit
Behdad Esfahbod f0de40dd 2021-08-23T23:52:17 Whitespace
Behdad Esfahbod 8cdbea55 2021-08-23T23:44:55 [ot-shape-normalize] Move buffer out of hb_ot_shape_normalize_context_t
Behdad Esfahbod 10da9fd2 2021-08-23T23:32:02 [ot-map] Whitespace
Behdad Esfahbod d3e09bf4 2021-08-24T10:31:49 [set] Make all operators null-safe again Changed my mind. Also for hb_map_clear(). Part of https://github.com/harfbuzz/harfbuzz/pull/3162
Behdad Esfahbod 33c82c7d 2021-08-22T22:31:39 [ot-shape] Fix unused-var error when building without AAT Fixes https://github.com/harfbuzz/harfbuzzjs/issues/45
Qunxin Liu 34e0b28f 2021-08-18T20:46:06 [subset] make glyph-names option match fonttools behavior Don't encode psNames that are contained in standard glyph names set
Behdad Esfahbod 829b0f33 2021-08-20T01:28:15 Merge pull request #3154 from harfbuzz/set-invert Resurrect hb_set_invert()
Behdad Esfahbod 84c2a302 2021-08-19T16:33:48 [bit-set-invertible] Second try fixing previous()
Behdad Esfahbod 8f88747a 2021-08-19T16:30:48 [bit-set-invertible] Fix previous() iteration
Behdad Esfahbod 1d832693 2021-08-19T16:02:30 [set] Protect against immutible null set with invertible addition
Behdad Esfahbod dc800ffd 2021-08-19T15:35:51 [bit-set] Remove TODO items we don't intend to finish
Behdad Esfahbod 92908c12 2021-08-19T15:28:26 [bit-set-invertible] Remove extra check We don't expect immutable / null set in this code.
Behdad Esfahbod 1babe80e 2021-08-19T15:18:32 [bit-set-invertible] Fix last remaining corner-case
Behdad Esfahbod e8911d13 2021-08-19T14:59:57 [bit-set-invertible] Implement a couple other missing corner cases Also, in bit-set, don't compute population in is_equal/is_subset() if we don't have it computed already.
Behdad Esfahbod 2579dc64 2021-08-19T14:48:27 [bit-set-invertible] Move code around
Behdad Esfahbod 2dfc1042 2021-08-19T14:47:33 [bit-set-invertible] Implement is_empty() for inverted case as well
Behdad Esfahbod ec4812a7 2021-08-19T13:32:44 [bit-page] Remove unused inverted code
Behdad Esfahbod 87885e6f 2021-08-19T13:26:25 [bit-set-invertible] Fix next/previous() logic
Behdad Esfahbod ee4e331a 2021-08-19T13:23:22 [bit-set] Remove unused get_min(inverted)
Behdad Esfahbod eec1a25e 2021-08-19T13:22:36 [bit-set-invertible] Rewrite get_min/max() in terms of next/previous()
Behdad Esfahbod f09d5ed0 2021-08-19T13:06:10 [algs] Remove hb_bitwise_non()
Behdad Esfahbod f4fd7baf 2021-08-19T13:05:12 [bit-set-invertible] Fix subtract() logic
Behdad Esfahbod f317d8e4 2021-08-19T13:01:07 [bit-set-invertible] Fix intersect() logic
Behdad Esfahbod b21038d9 2021-08-19T11:24:17 [bit-set-invertible] Rewrite next/previous_range() in terms of s.next/previous()
Behdad Esfahbod eb98bc1e 2021-08-19T11:19:24 [bit-set-invertible] Rewrite next/previous() using s.next/previous_range()
Behdad Esfahbod 248ad3bc 2021-08-19T10:17:51 [bit-set-invertible] Implement next/previous This makes invertible set functionality complete.
Behdad Esfahbod c27f5b12 2021-08-19T10:01:24 [bit-set-invertible] Plug in next_range()/previous_range()
Behdad Esfahbod f6aa3715 2021-08-19T01:12:25 [bit-set-invertible] Fix process logic for inverted [# On branch set-invert
Behdad Esfahbod 060de189 2021-08-19T00:58:34 [bit-page] Fix sanitizer error This essentially reverts 9449cfeefd7e3b761c8035c45330abd7a5201604 Problem was dereferencing pointer at end of array...
Behdad Esfahbod b119b480 2021-08-19T00:51:24 [bit-set-invertible] Add unlikely() around inverted checks
Behdad Esfahbod b94f24ec 2021-08-19T00:48:00 [bit-set-invertible] Implement set algebra
Behdad Esfahbod 6afefe1d 2021-08-19T00:27:03 [algs] Remove unnecessary struct tag names
Behdad Esfahbod 8aa92ff8 2021-08-18T23:01:06 [bit-set-invertible] Implement get_min/max
Behdad Esfahbod 18f50275 2021-08-18T22:08:06 [bit-set] Restructure get_min/max() in prep for adding inverted
Behdad Esfahbod 669b97d9 2021-08-18T21:39:04 [bit-set-invertible] Implement iterator
Behdad Esfahbod c66894d7 2021-08-18T21:24:29 [bit-set-invertible] Write a subset branch as dagger
Behdad Esfahbod c39d2f7a 2021-08-18T21:20:54 [bit-set-invertible] Implement add_array / add_sorted_array / intersects
Behdad Esfahbod 0efa614c 2021-08-18T21:16:05 [bit-set] Add del_array/del_sorted_array()
Behdad Esfahbod 48ad9eef 2021-08-18T21:05:21 [bit-set] Merge page_for_insert() into page_for()
Garret Rieger 280366ba 2021-08-18T15:50:49 Add TODO to update NN offsets to allow nulls.
Garret Rieger dc31920b 2021-08-18T14:20:14 Don't serialize null offsets in CPAL. Fixes https://oss-fuzz.com/testcase-detail/5443213648330752
Khaled Hosny 80ff72f3 2021-08-18T13:09:03 [doc] Misc fixes
Khaled Hosny 9aa6f8a9 2021-08-18T09:32:04 2.9.0
Behdad Esfahbod f0c3804f 2021-08-17T15:37:19 [set] Add hb_bit_set_invertible_t and resurrect hb_set_invert() Implementation is NOT complete yet.
Behdad Esfahbod b5cdbdc0 2021-08-17T10:53:08 [set] Turn hb_set_t into instance of template taking implementation t
Behdad Esfahbod fad452bf 2021-08-16T20:48:24 [set] Move main functionality into hb_bit_set_t To add inversion on top in hb_invertible_set_t and use that as hb_set_t.
Behdad Esfahbod 9cc4da96 2021-08-16T20:17:53 [object] Remove hb_object_is_inert()
Behdad Esfahbod 2d5ef05d 2021-08-16T20:13:58 Use !g_object_is_valid() instead of g_object_is_inert()
Behdad Esfahbod f6d6eff6 2021-08-16T19:41:44 [object] Remove unused HB_REFERENCE_COUNT_INIT
Behdad Esfahbod f245dc4d 2021-08-15T12:40:36 [set] Whitespace
Behdad Esfahbod 9b390f8c 2021-08-15T12:34:55 [set] Move page_t into hb-bit-page.hh
Behdad Esfahbod 0c3e02ee 2021-08-15T12:10:13 [set] Add "inverted" to page_t::is_empty()
Behdad Esfahbod 9bd64fa0 2021-08-15T11:42:16 [set] Add "inverted" to page_t::next/prev()
Behdad Esfahbod c88e7ec9 2021-08-15T11:39:31 [set] Add page_t::elt_maybe_invert()
Behdad Esfahbod 9449cfee 2021-08-15T11:35:33 [set] Simplify page_t::next/prev()
Behdad Esfahbod 4394ee1f 2021-08-15T11:28:09 [set] Add inverted to page_t::get_min/max()
Behdad Esfahbod 0dcd9b15 2021-08-15T11:11:10 [set] Add page_t::set_range()
Behdad Esfahbod cb273fd1 2021-08-15T11:09:08 [set] Add page_t::set()
Behdad Esfahbod 32bbf53d 2021-08-15T11:06:52 [set] Minor rewrite one cmp() in term of other
Garret Rieger cb05c363 2021-08-13T15:19:20 [subset] add some basic tests for the legacy subset methods.
Garret Rieger d18aad7e 2021-08-13T15:05:48 [subset] restore old subsetting api methods. These will be left in place until the 3.0.0 release.
Garret Rieger c0f3af91 2021-08-11T16:20:05 [subset] speed up add_gid_and_children and adjust op limit. Fix for fuzzer timeout: https://oss-fuzz.com/testcase-detail/5001604901240832. - Operation limit is per glyph, so 100,000 should still be far more than needed. - Switches from for(...) to while(...) loop for iteration. for(...) calls it.end() which in this case triggers a complete iteration. - Cache CompositeGlyph size in the iterator to avoid needing to recalculate it.
Garret Rieger c08f1b89 2021-08-10T12:29:32 [map] fix incorrect population count in hash map. If the same key was set twice the population was being incorrectly incremented.
Garret Rieger e39c3bde 2021-08-10T11:41:55 [subset] fix bug in parsing glyf flags. the bytes of the flag stream were being treated as signed integers instead of unsigned as specified in the spec.
Ben Wagner f5ba1fab 2021-08-07T16:05:51 Fix documentation of hb_subset_flags_t defaults HB_SUBSET_FLAGS_DEFAULT is 0, and hb_subset_input_create_or_fail initializes its flags to HB_SUBSET_FLAGS_DEFAULT, so currently all flags are set to false by default. It has been decided that future flags will also be false by default for simplicity (using NO_ in the name if needed). Correct and simplify the documentation for hb_subset_flags_t to reflect this.
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.
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 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
Behdad Esfahbod e80c86ff 2021-08-04T10:24:14 [coretext] Fix formatting
Simon Cozens 66aef281 2021-08-04T13:34:52 Support passing variations to coretext shaper
Behdad Esfahbod 62a535f1 2021-08-03T10:11:27 [khmer] Fix comment Fixes https://github.com/harfbuzz/harfbuzz/issues/3104
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.
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.
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.
Behdad Esfahbod 30579f5a 2021-07-29T11:19:13 [set] Document & use open-ended del_range()