src/hb-ot-layout-gsub-table.hh


Log

Author Commit Date CI Message
Behdad Esfahbod b2a1accc 2020-06-18T16:41:31 Simplify get_glyph_alternates() dispatcher Trying to make it **very simple** to add a specialized dispatcher for one API to be routed to just a few objects (one in this case).
Behdad Esfahbod ffe8d3f3 2020-06-18T16:31:39 Use dispatch for get_glyph_alternates_t First time we do this in a way that if target object doesn't have the matching function we basically "ignore". Risky but I feel like is the right decision for this case. I'm going to put back the template varargs and use those, which would make the dispatcher be just that: "dispatcher", and wouldn't need to carry the call context. That would be a refreshing change I think.
Behdad Esfahbod bedf4171 2020-06-18T15:49:01 Push get_glyph_alternates() work all the way down
Ebrahim Byagowi 1bac8582 2020-06-18T22:56:07 [layout] Rename _get_alternates to _get_glyph_alternates
Ebrahim Byagowi d3c16979 2020-06-18T08:37:21 [layout] move alternate buffer iteration logic to AlternateSet
Ebrahim Byagowi 1348a2c8 2020-06-16T21:05:16 [layout] hb_ot_layout_lookup_get_alternates, a new API An API to retrieve one-to-one alternates from a given GSUB lookup index.
Behdad Esfahbod 41ef75f6 2020-06-17T16:29:09 [gsub] Don't substitute in ReverseChainSingleSubstFormat1 if missing substitute Fixes https://github.com/harfbuzz/harfbuzz/issues/2467
Qunxin Liu 973c47f6 2020-06-11T11:27:57 [subset] Move 2 experimental public api methods to be private methods in GSUB/GPOS. 2 methods are: hb_ot_layout_closure_lookups and hb_ot_layout_closure_features
Behdad Esfahbod 56719474 2020-06-05T12:57:23 s/blacklist/blocklist/g
Behdad Esfahbod 5cf53c06 2020-04-23T10:55:41 Rename add_coverage to collect_coverage
ariza 188a0a47 2020-03-07T11:02:36 removed default base; replaced w/ bias if required
Ebrahim Byagowi 07504569 2020-02-21T13:05:44 [gsub] minor format
Garret Rieger 41122542 2020-02-20T13:43:06 Fix glyph closure for alternate substitution. It was not filtering on the glyphs to be retained.
ariza 72cbfb90 2020-01-18T16:35:52 remove empty lookup subtables Added a variant of subset_offset_array which takes an extra arg passed to serialize_subset for this impl. Added a new api test "test-subset-gpos" for this.
Qunxin Liu e565d1f9 2019-11-01T10:21:36 [subset] subset lookup/feature/script lists for GSUB/GPOS
Qunxin Liu 0b39c480 2019-10-22T16:00:43 [subset] closure lookups for GSUB/GPOS
Behdad Esfahbod a061e47f 2019-12-10T13:31:50 Change a few HB_INTERNAL static methods to static inline
Behdad Esfahbod dd3972a3 2019-12-10T13:21:26 [GSUB] Simplify Extension is_reverse() We don't allow extension lookups to chain to another extension lookup. Simplify code for that.
Behdad Esfahbod 858b6279 2019-12-10T13:18:32 [machinery] Remove CastR<>()
Garret Rieger e17e7443 2019-10-09T11:45:42 Convert existing uses of serialize_append in gsub subsetting to use subset_offset_array.
Garret Rieger 36f18cec 2019-10-07T14:02:31 Add subset_offset_array helper function which simplifies subsetting offset arrays during stream operations.
Ebrahim Byagowi d512087e 2019-09-14T10:36:29 Rename GlyphID to HBGlyphID Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
Behdad Esfahbod 38f95baf 2019-08-29T13:40:46 [subset] in SingleSubst subsetting, check for substitute in glyphset That matches what fonttools does and allows for specifying exact glyphset for subset.
Ebrahim Byagowi 49902964 2019-08-29T15:09:39 [gsub] Fix clang's semicolon complains
Behdad Esfahbod dc9222b1 2019-08-28T15:38:46 [subset] Implement AlternateSubst subsetting
Behdad Esfahbod 23681b6d 2019-08-28T15:30:37 Minor
Behdad Esfahbod 33c8e230 2019-08-28T15:25:55 [subset] Implement MultipleSubst subsetting
Behdad Esfahbod 5c43a7ba 2019-08-28T15:09:58 [GSUB] Use dagger in Ligature::intersects()
Behdad Esfahbod b8c642c1 2019-08-28T15:06:45 Minor
Behdad Esfahbod bc5ef765 2019-08-28T14:51:28 [subset] Subset ligature substitutes! Test with: $ ./hb-subset -o out.ttf NotoSansArabic-Regular.ttf --drop-tables= سلام && ./hb-view out.ttf سلام
Behdad Esfahbod 0a18efd7 2019-07-26T14:34:26 Minor
Behdad Esfahbod 7dcf8e12 2019-06-26T13:44:10 [config] Fix build with HB_NO_OT_LAYOUT
Behdad Esfahbod 2ad4ba7b 2019-05-31T15:48:54 [gsub] Minor
Behdad Esfahbod 2dbdec66 2019-05-31T15:38:11 [gsub] Porting serialize to iterators
Garret Rieger 0af9de13 2019-05-20T15:04:20 [subset] For gsub subsetting only consider glyphs reachable via gsub closure.
Behdad Esfahbod bcd3ffc9 2019-05-16T13:22:09 Whitespace
Behdad Esfahbod 05bc5f96 2019-05-16T13:05:58 [subset] Remove extra iteration
Behdad Esfahbod 23768676 2019-05-15T21:57:26 Use hb_map(hb_add(this)) to dereference OffsetTo<>'s
Behdad Esfahbod d214b078 2019-05-15T19:07:39 Fix clang build Ugh. In file included from hb-ot-face.cc:41: ./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument hb_requires (hb_is_sorted_source_of (Iterator, ^ ./hb-meta.hh:59:27: note: expanded from macro 'hb_requires' define hb_requires(Cond) hb_enable_if((Cond)) ^ ./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if' define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr ^ ./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here hb_requires (hb_is_sorted_source_of (Iterator, ^ ./hb-meta.hh:59:27: note: expanded from macro 'hb_requires' define hb_requires(Cond) hb_enable_if((Cond)) ^ ./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if' define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr ^
Behdad Esfahbod 371b55c7 2019-05-15T18:54:07 Fix clang build In file included from hb-ot-face.cc:41: ./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument hb_requires (hb_is_sorted_source_of (Iterator, ^ ./hb-meta.hh:59:27: note: expanded from macro 'hb_requires' define hb_requires(Cond) hb_enable_if((Cond)) ^ ./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if' define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr ^ ./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here hb_requires (hb_is_sorted_source_of (Iterator, ^ ./hb-meta.hh:59:27: note: expanded from macro 'hb_requires' define hb_requires(Cond) hb_enable_if((Cond)) ^ ./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if' define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr ^ 1 error generated.
Behdad Esfahbod f92d188d 2019-05-15T18:52:57 Whitespace
Garret Rieger 962f95cf 2019-05-09T13:04:11 [subset] Switch SingleSubst to use iterators in serialize.
Behdad Esfahbod 78d35f0e 2019-05-15T18:15:05 Reduce captures of lambdas
Behdad Esfahbod d0df996c 2019-05-15T00:32:41 Use implicit lambda return type
Behdad Esfahbod 7df3ecfb 2019-05-10T20:43:26 [meta] hb_void_t -> hb_empty_t
Behdad Esfahbod 83e3eabd 2019-05-07T20:58:43 Whitespace
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Behdad Esfahbod 36bb24f7 2019-05-05T10:14:17 [dispatch] Forward arguments in all dispatch multiplexers
Behdad Esfahbod b10f6593 2019-05-05T09:23:35 [dispatch] Use functionality from previous commit To remove a couple of unwanted wrapper methods
Behdad Esfahbod 88a41472 2019-05-02T14:22:31 [serializer] Accept exact type in serialize_subset/copy()
Ebrahim Byagowi 92588782 2019-04-30T13:05:10 Remove space between right angle brackets now that we have C++11 (#1689)
Behdad Esfahbod 42526d16 2019-04-24T10:24:33 [serialize] Fix SingleSubstFormat1 failure
Behdad Esfahbod 915b9ea5 2019-04-24T10:07:19 [serialize] Add c->check_assign() To check for assignment overflows.
Behdad Esfahbod 00a00bc1 2019-04-24T10:01:30 Fix two TODOs
Behdad Esfahbod 95df00ae 2019-04-12T17:50:03 Hide a few static methods Looks like static methods that do not get inlined end up exported. We have a lot more. Need to protect all at some point. Wish there was an easier way, like the visibility flag we pass that automatically hides all inline methods. Was exposed by check-symbols.sh when compiling on OS X 10.14 with: $ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
Behdad Esfahbod 688069bb 2019-03-29T22:17:31 [iter] One more dagger
Behdad Esfahbod 90b60bd6 2019-03-29T22:12:42 Remove HB_DEBUG_WOULD_APPLY Not that useful.
Behdad Esfahbod 4d28267e 2019-03-29T22:04:15 [iter] Port more to daggers
Behdad Esfahbod 418e9d07 2019-03-29T21:57:26 Simplify code
Behdad Esfahbod bcab098c 2019-03-29T21:49:18 [iter] Port more code to daggers
Behdad Esfahbod 4c75158e 2019-03-29T21:46:13 [iter] Port two more functions to daggers
Behdad Esfahbod f1dad91e 2019-03-29T21:17:08 Whitespace
Behdad Esfahbod 896b3167 2019-03-29T21:16:30 [iter] Port two more loops to dagger
Behdad Esfahbod 12a4c044 2019-03-29T21:06:10 Whitespace
Behdad Esfahbod b986c6a3 2019-03-29T20:17:46 [C++11] Remove IntType::set() in favor of operator=
Behdad Esfahbod f4cfd6b6 2019-02-14T13:45:52 [iter] A couple more hb_apply() + lambda uses
Behdad Esfahbod 7514a49f 2019-02-14T13:16:33 [iter] Use hb_apply() with lambda functions in a few places
Behdad Esfahbod f8fcfb26 2019-02-14T11:03:29 [iter] Accept pointers to hb_sink()
Behdad Esfahbod bb139cb8 2019-02-14T10:51:47 [iter] Back to dagger formatting for pipelines
Behdad Esfahbod 16cc313d 2019-02-14T10:40:05 [iter] Use hb_sink()
Behdad Esfahbod 2d940946 2019-01-30T16:03:16 [iter] Fix mystery crash Fuzzer caught it: ==14==ERROR: AddressSanitizer: stack-use-after-return on address 0x7fca2ed7a3e0 at pc 0x0000006057aa bp 0x7ffc3290f1d0 sp 0x7ffc3290f1c8 READ of size 4 at 0x7fca2ed7a3e0 thread T0 SCARINESS: 55 (4-byte-read-stack-use-after-return) #0 0x6057a9 in OT::SingleSubstFormat2::subset(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:194:40 #1 0x5ff921 in hb_subset_context_t::return_t OT::SingleSubst::dispatch<hb_subset_context_t>(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:256:13 I can't reproduce locally, but many of the bots are failing because of this as well. It's a pity that operator-> must return pointer. Ugh. Why?!
Behdad Esfahbod cbe2118c 2019-01-30T15:07:09 Merge branch 'master' into iter
Garret Rieger 4842294b 2019-01-28T16:51:27 [subset] Update gsub to use glyphset() method of subset plan.
Behdad Esfahbod 090fe56d 2019-01-25T15:34:03 Merge branch 'master' into iter
Behdad Esfahbod ef006549 2019-01-22T12:08:57 Convert tag enum class consts to static constexpr Part of https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod 21c0713a 2019-01-09T21:24:51 Whitespace
Behdad Esfahbod 420d8ac3 2019-01-09T20:58:25 [algs] Add hb_iter() Makes it nicer in pipelines.
Behdad Esfahbod 54ec48ea 2019-01-09T20:54:21 Use iter pipelines more
Behdad Esfahbod f4cbb1ee 2019-01-09T13:28:00 WIP
Behdad Esfahbod ede1a71b 2019-01-09T10:45:53 Minor rename
Behdad Esfahbod af2067e8 2019-01-09T10:17:33 Use hb_zip() moooore
Behdad Esfahbod 0d1fdf93 2019-01-09T10:06:48 Use hb_zip() some mooore
Behdad Esfahbod 83ad0b6d 2019-01-09T09:57:36 Use hb_zip() some more
Behdad Esfahbod f0dd0656 2019-01-09T09:52:10 Use hb_zip() some
Behdad Esfahbod 815cde9f 2019-01-07T18:33:04 [iter] Use is_sorted_iterator
Behdad Esfahbod a46874f1 2018-12-28T21:23:26 [iter] Revert back uses of C++11 auto type deduction
Behdad Esfahbod d6024794 2018-12-27T09:56:41 Change hb_void_t implementation
Behdad Esfahbod e1688424 2018-12-26T22:27:23 [iter] Port Coverage iterator to hb_iter_t
Behdad Esfahbod 89bcfb20 2019-01-18T14:59:18 Remove TRACE_COLLECT_GLYPHS
Behdad Esfahbod 0772c06f 2019-01-18T12:53:06 Remove tracing from closure
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Behdad Esfahbod 09740148 2018-12-21T15:56:01 [serialize] Use component_list by reference, as a supplier
Behdad Esfahbod f1e95e40 2018-12-18T16:49:08 [arrays] Remove hb_supplier_t<>
Behdad Esfahbod 9aebfb41 2018-12-18T13:22:17 [serialize] Streamline error propagation
Behdad Esfahbod cf39c242 2018-12-17T22:36:23 [arrays] Rename Supplier to hb_supplier_t
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod 705e2f50 2018-12-13T17:48:42 [subset] Implement for ClassDef
Behdad Esfahbod 6e33a395 2018-12-13T16:40:01 Minor
Behdad Esfahbod 2cc993e0 2018-12-12T10:07:38 [dispatch] Minor