Log

Author Commit Date CI Message
Behdad Esfahbod 7cc79a8a 2022-11-21T12:09:24 [vector] Adjust comment
Behdad Esfahbod e82a3c69 2022-11-21T12:00:10 [array/vector] Optimize range-based for-loop Avoid bounds-checking.
Behdad Esfahbod 0387182c 2022-11-21T11:05:47 [ot-map] Minor refactor features[i] access
Behdad Esfahbod 5ee6d5d7 2022-11-21T11:00:29 [cff] Add memory-barrier to INDEX Like we do for ArrayOf.
Behdad Esfahbod 6905d36d 2022-11-21T10:51:33 [cff] Fix fetch_op() bounds-checking
Behdad Esfahbod b51ab1a9 2022-11-21T10:27:07 [cff] Optimize byte_str_ref_t Make it 16 bytes instead of 24. This struct is used in the subroutine call stack heavily. This change makes the HB AdobeVFPrototype benchmark to become faster than FT one, with about 6% speedup as a result of this change.
Behdad Esfahbod 7a39464b 2022-11-21T09:48:54 [cff] Hide members of byte_str_ref_t
Behdad Esfahbod 18141f00 2022-11-21T09:47:03 [cff] Move a sub_array call No logic change.... I hope?!
Behdad Esfahbod f66415cd 2022-11-21T09:39:27 [cff] Move initialization of a type to constructor
Behdad Esfahbod 70a5cd53 2022-11-21T08:52:33 [algs] Assert trivial copy assignable in stable_sort
Behdad Esfahbod 9bb39423 2022-11-20T17:40:54 [algs] Simplify stable_sort signatures
Behdad Esfahbod d119568d 2022-11-20T14:11:51 [cbdt] Use vector tail()
Behdad Esfahbod 87a88117 2022-11-20T14:10:39 [object] Use vector tail()
Behdad Esfahbod 76ce390b 2022-11-20T13:54:56 [ucd] Document algorithms
Behdad Esfahbod ed43bc51 2022-11-20T13:10:19 [buffer] Move delete_glyphs_inplace() here
Behdad Esfahbod dd88dae8 2022-11-19T15:22:39 [unicode] Simplify set_funcs a bit more
Behdad Esfahbod 2d8ff3bc 2022-11-19T15:23:44 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 527823cc 2022-11-19T15:19:08 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 56d6b699 2022-11-19T15:08:50 [font/draw] Remove unneeded branch The preamble sets user_data/destroy to nullptr if func is nullptr.
Behdad Esfahbod 976bb26c 2022-11-19T15:06:23 [draw] Optimize set_func functions
Behdad Esfahbod 114167a9 2022-11-19T14:47:45 [font] Optimize set_func functions
Behdad Esfahbod f9d7b303 2022-11-19T14:20:36 [thai] Use smaller type for arrays No logic change.
Behdad Esfahbod 72c4e431 2022-11-19T13:40:33 [use-table] Add a OPTIMIZE_SIZE version
Behdad Esfahbod 83c3a91d 2022-11-19T13:34:58 [gen-use-table] Report fullCost
Behdad Esfahbod ba08de62 2022-11-19T13:14:18 [ucd] Change OPTIMIZE_SIZE to compression level 9 Also changes default compression level from 3 to 5, but that shows no change in the generated table size.
Behdad Esfahbod b68f9f3c 2022-11-18T21:35:35 [machinery] Adjust comment
Behdad Esfahbod a47ba1dc 2022-11-18T21:14:07 [lazy-pointer] Hide instance
Behdad Esfahbod 281b4705 2022-11-18T20:25:05 [pool] Rewrite a loop as dagger
Behdad Esfahbod 3ff8abf2 2022-11-18T19:35:49 Revert "[map] Allow std::move-ing keys into the map" This reverts commit f657ef7e57c889309c2d9d37934368ca255f9d5b. This breaks many compilers with messages like this: hb-subset-plan.hh:226: undefined reference to `OT::head::tableTag' I'm out of my depth re how to fix it.
Behdad Esfahbod 039e476b 2022-11-18T19:26:02 [test-vector] Test sink-move'ing
Behdad Esfahbod a3a218ed 2022-11-18T19:24:41 [map] Add a couple more sink interfaces
Behdad Esfahbod 90226eab 2022-11-18T19:21:58 [test-map] Test inserting shared_ptr key
Behdad Esfahbod f657ef7e 2022-11-18T19:17:03 [map] Allow std::move-ing keys into the map
Behdad Esfahbod a1768ad8 2022-11-18T19:08:34 [map] Fix use of !=
Behdad Esfahbod e74b372b 2022-11-18T18:41:39 [test-map] Test moving values
Behdad Esfahbod a9c6a20b 2022-11-18T18:29:12 [map] Support moving value in sink interface
Behdad Esfahbod 1bf9afaa 2022-11-18T18:20:50 [test-vector] Test sink interface
Behdad Esfahbod fa0e4b04 2022-11-18T18:20:14 [test-map] Test sink interface
Behdad Esfahbod 1c612a85 2022-11-18T18:18:42 [test-set] Test sinking range
Behdad Esfahbod 356708e3 2022-11-18T18:17:34 [test-set] Test length of iterator
Behdad Esfahbod 2892fc71 2022-11-18T18:03:59 [vector] Add std::move to pop() This was removed in 76fc27713f52cc338f0325650c2c7798f5cfa2ce, but I believe that was faultly. It was because of a bad move implementation in the set.
Behdad Esfahbod 921f45f4 2022-11-18T17:26:58 [array] Rewrite hash() as dagger
Behdad Esfahbod 21311731 2022-11-18T17:24:23 [array] Remove hash specializations for bytes Not needed.
Behdad Esfahbod bef5a1c8 2022-11-18T17:22:17 [vector] Comment
Behdad Esfahbod 69b41f92 2022-11-18T17:04:34 [vector] Simplify shift_down_vector() Compiler is smarter than I am.
Behdad Esfahbod 1dd9396c 2022-11-18T17:01:14 [vector] Optimize grow_vector() for size Again, compiler is smarter than I am.
Behdad Esfahbod d36f6881 2022-11-18T17:00:07 [vector] Optimize shrink_vector for size Compiler is smarter than I am.
Behdad Esfahbod bc8eded2 2022-11-18T16:51:24 [vector] Remove a for loop
Behdad Esfahbod afd9a58b 2022-11-18T16:46:01 [vector] Save a couple hb_iter() invocations
Behdad Esfahbod 3ead9863 2022-11-18T16:43:47 [map] Add size()
Behdad Esfahbod 42db8be1 2022-11-18T16:41:50 [map] Minor remove if condition
Behdad Esfahbod 4ec70698 2022-11-18T16:39:30 [map] Rewrite hash() as dagger Somehow our daggers instead of for loop save size. I cannot pinpoint why, other than maybe not inlining.
Behdad Esfahbod 025a68cb 2022-11-18T16:33:04 [map] Optimize copy resizing logic
Behdad Esfahbod f1d71687 2022-11-18T16:31:27 [map] Change bucket_for_hash() to item_for_hash()
Behdad Esfahbod d012f9a9 2022-11-18T16:29:06 [map] Change bucket_for() to item_for()
Behdad Esfahbod 68a29020 2022-11-18T16:02:45 [bit-page] Write hash() as dagger
Behdad Esfahbod 87271e1b 2022-11-18T16:01:23 [bit-page] Write get_population as dagger
Behdad Esfahbod 744eb6ba 2022-11-18T15:56:06 [bit-page] Write is_empty() as dagger
Behdad Esfahbod 43a4028f 2022-11-18T15:54:34 [algs] Move hb_vector_size_t to bit-page as only user
Behdad Esfahbod 01f961ac 2022-11-18T15:47:17 [gsubgpos] Minor call hb_iter() instead of ->iter() directly
Behdad Esfahbod bba57655 2022-11-18T14:52:17 [gsubgpos] Remove a few unnecessary namespace invocations
Behdad Esfahbod b4d0d160 2022-11-18T14:47:33 [gsubgpos] Rewrite a couple apply() functions as daggers
Behdad Esfahbod 76c8214e 2022-11-18T12:30:46 [gsubgpos] Move member around
Behdad Esfahbod 81a57300 2022-11-17T16:59:36 [map] Optimize storage
Behdad Esfahbod ae080bf2 2022-11-17T16:34:58 [map] Initialize key and value explicitly If they are of int time they won't be initialized otherwise.
Behdad Esfahbod 1d41b9cb 2022-11-17T16:26:48 [user-data] std::move item
Behdad Esfahbod ff0bb748 2022-11-17T16:17:37 [map] Call item_t constructor/destructor directly
Behdad Esfahbod 5c887159 2022-11-17T16:14:16 [map] Add item_t.destruct()
Behdad Esfahbod 7f830408 2022-11-17T16:10:37 [map] Simplify (de)construction of item_t
Behdad Esfahbod 99103bd9 2022-11-17T15:57:06 [map] Destruct objects when clearing
Behdad Esfahbod 4caad572 2022-11-17T15:51:39 [test-map] Add test for reset I expect this to leak now, since we don't destruct items.
Behdad Esfahbod e93c01c3 2022-11-17T15:50:00 [map] Rename item clear() to construct()
Behdad Esfahbod fc22d706 2022-11-17T15:46:48 [test-map] Don't insert null smart-pointers in map Dereferencing them is not supported anymore after 3aad7c2ddffc3f882bf33504dbac31be491c4d72 We don't support that for regular pointers, so don't supporting them for smart-pointers sounds right to me.
Behdad Esfahbod 89637746 2022-11-17T15:25:45 [map] Don't resize map if not necessary
Behdad Esfahbod 7595fa2d 2022-11-17T15:19:29 [map] Fix copy-assignment operator Ouch!
Behdad Esfahbod 41f4bdac 2022-11-17T15:16:00 [map] Fix resize during copy-construction/assignment
Behdad Esfahbod 3aad7c2d 2022-11-17T15:10:47 [algs] Remove smart-pointers from hb_hash() hb_deref() handles them. I think this code predated that.
Behdad Esfahbod 7bd10172 2022-11-17T15:01:55 [map] Minor use hb_iter instead of hb_array
Behdad Esfahbod 238fc147 2022-11-17T14:58:50 [map] Simplify iterators
Behdad Esfahbod 410c14bf 2022-11-17T14:53:00 [map] Fix equality Ouch!
Behdad Esfahbod 6dfd4a16 2022-11-16T22:44:22 [ot-font] Remove stale TODO
Behdad Esfahbod a0bde1e1 2022-11-16T21:27:12 [open-type] Remove (Sorted)ArrayOf.sub_array()
Behdad Esfahbod f2b5db70 2022-11-16T21:22:43 [vector] Remove .sub_array ()
Behdad Esfahbod c7d57dcf 2022-11-16T21:21:31 [vector/array] Simplify qsort()
Behdad Esfahbod 1610008e 2022-11-16T20:02:36 [gsubgpos] Minor remove call to hb_iter
Behdad Esfahbod 19ec01d2 2022-11-16T19:14:42 [gsubgpos] Sprinkle const around
Behdad Esfahbod 561946c7 2022-11-16T17:58:59 [layout] Comment
Behdad Esfahbod 2268207c 2022-11-16T17:51:22 [layout] Update comment
Behdad Esfahbod 658f8f43 2022-11-16T17:50:35 [layout] Comment
Behdad Esfahbod 27a8fe7d 2022-11-16T17:49:44 [layout] Only update buffer digest if buffer changed by a pause
Behdad Esfahbod 8b2a2111 2022-11-16T16:57:44 [layout] Keep digest updated in the context Don't recompute digest after every (applied) GSUB lookup.
Behdad Esfahbod a5964a2d 2022-11-16T16:45:23 [layout] Minor simplify
Behdad Esfahbod 44396197 2022-11-16T16:35:00 [perf] Add fa-words.txt and use in shape benchmark
Behdad Esfahbod 80b87588 2022-11-16T16:26:41 [layout] Add a buffer message for digest-skipped lookups
Behdad Esfahbod afa71ee8 2022-11-16T16:22:45 Fix alignment error
Behdad Esfahbod dff1b809 2022-11-16T16:19:05 [buffer] Add .digest() and use
Behdad Esfahbod 654a2eaf 2022-11-16T16:09:04 [layout] Use buffer-digest for GSUB as well Combined with previous commit, this shows up to 12% speed up with Roboto and the en-words (ie. short strings) benchmark, about 5% for longer English tests, and no adverse effect on heavier fonts.
Behdad Esfahbod 15b6c325 2022-11-16T15:59:13 [layout] Use a buffer digest for GPOS to skip whole lookups
Behdad Esfahbod a053b84c 2022-11-16T14:39:25 [gsubgpos] Optimize set-digest initialization Previously we were once collecting set-digest for each subtable, and another time for each lookup. Now we compute the one for each lookup simply from the ones for its subtables.
Behdad Esfahbod 20654cd8 2022-11-16T14:15:58 [set-digest] Minor no logic change