Commit Graph

105 Commits

Author SHA1 Message Date
Behdad Esfahbod 36e1a6339c [cff] Add total_size to INDEX 2022-12-01 17:00:03 -07:00
Behdad Esfahbod a2681c37c1 [cff-subset] Simplify INDEX serialize() more 2022-12-01 16:15:23 -07:00
Behdad Esfahbod c4b05878cb [subset-cff] Remove INDEX unused serialize() methods 2022-12-01 15:56:37 -07:00
Behdad Esfahbod b3ad4d72cc [cff] Another no-memset in INDEX 2022-12-01 15:46:00 -07:00
Behdad Esfahbod 70ac6dfb28 [subset-cff] Don't memset 0 INDEX and other serialize methods
Not necessary.
2022-12-01 14:58:25 -07:00
Behdad Esfahbod 2dc2e016d4 [cff] Enable an unlikely 2022-11-30 11:25:50 -07:00
Behdad Esfahbod 582a87ef0a [cff] Speed up FDSelect0 sanitize 2022-11-30 11:20:19 -07:00
Behdad Esfahbod ded9de9cd8 [cff] bsearch in fdselect
Saves 8% in NotoSansCJK / 10000 subset benchmark.
2022-11-28 13:32:08 -07:00
Behdad Esfahbod 59c45f6deb Use hb_memcpy instead of memcpy consistently 2022-11-22 12:54:50 -07:00
Behdad Esfahbod a2984a2932 [cff] Remove unnecessary namespacing 2022-11-21 18:40:52 -07:00
Behdad Esfahbod b238578a9c [cff] Optimize INDEX operator[] 2022-11-21 14:36:57 -07:00
Behdad Esfahbod 5ee6d5d77e [cff] Add memory-barrier to INDEX
Like we do for ArrayOf.
2022-11-21 11:00:29 -07:00
Garret Rieger 19a8db8545 [subset] fix potential integer overflow in gname_t::cmp. 2022-05-13 13:55:39 -06:00
Behdad Esfahbod 2d2f66e1a3 [cff-common] In INDEX, return empty bytes if length is zero
Before it was possible to return non-null arrayZ.
2022-05-13 13:53:17 -06:00
Behdad Esfahbod 9033c7f99d [cff-common] Optimize INDEX::operator[]
Previous try showed slowdown in benchmarks, suprisingly.

Rewrite it keeping the function, hopefully allowing better optimization.
2022-05-10 14:58:53 -06:00
Behdad Esfahbod 3aace2431b Revert "[cff-common] Optimize INDEX::operator[]"
This reverts commit 9edb03ac7a.
2022-05-10 14:54:04 -06:00
Behdad Esfahbod 9edb03ac7a [cff-common] Optimize INDEX::operator[] 2022-05-10 14:43:00 -06:00
Behdad Esfahbod 64d63cebe2 [cff-common] Use existing types for str_buff_vec_t 2022-05-09 17:34:58 -06:00
Behdad Esfahbod e1838ec1f8 [cff-common] Remove unused method 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 8aa54aaca2 [cff] Replace byte_str_t with hb_bytes_t use 2022-05-09 17:34:58 -06:00
Behdad Esfahbod c8a5f1e3c0 [cff-common] Indent 2022-05-09 17:34:58 -06:00
Behdad Esfahbod be7b2905cb [cff-common] Remove unused INDEX::serialize() method 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 60390169b6 [cff-common] Write str_buf_t::total_size() as dagger 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 258afb45b7 [cff-common] Use range-based loop in str_buff_vec_t 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 8bb1a3ce9a [cff-common] Write INDEX offset-size calc using hb_bit_storage() 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 2ccfe84eff [cff-common] Add assert to INDEX::set_offset_at() 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 4bcab9e99a [cff-common] Use byte_str_t() instead of Null(byte_str_t) 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 94f7a26322 [cff-common] Fix get_size() for Null object
The special-casing didn't make sense.
2022-05-09 17:34:58 -06:00
Behdad Esfahbod c9cc7d5d21 [cff-common] Inline once-used method in INDEX 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 11482a3a39 [cff-common] Remove unused method from INDEX 2022-05-09 17:34:58 -06:00
Behdad Esfahbod d1bb3b08f6 [cff-common] Hide more INDEX internals 2022-05-09 17:34:58 -06:00
Behdad Esfahbod d3b21387fd [cff-common] Remove redundant operator implementation 2022-05-09 17:34:58 -06:00
Behdad Esfahbod a96b408d80 [cff-common] Hide INDEX internals 2022-05-09 17:34:58 -06:00
Behdad Esfahbod 335b1d83cf [cff-common] No need to check max-offset in INDEX
The length_at() function makes sure out-of-range offsets
are discarded. We just need to check the last offset.
2022-05-09 17:34:58 -06:00
Behdad Esfahbod 2884eb97bf [cff-common] Remove special-casing of count=0 in INDEX serialize
The generic code-path now can handle count=0.
2022-05-06 13:33:13 -06:00
Behdad Esfahbod fc7f51aece [cff-common] Reduce iterator calls 2022-05-06 13:33:13 -06:00
Behdad Esfahbod c857b8e3c6 [cff-common] Set INDEX min_size to 2
That is what it is, for an empty INDEX.
2022-05-06 13:33:13 -06:00
Behdad Esfahbod d8292b8446 [CFF] Fix parsing of empty Index
https://github.com/harfbuzz/harfbuzz/issues/3545#issuecomment-1111047941
2022-04-27 12:38:35 -06:00
Behdad Esfahbod 035f03346d [str_buff_vec_t] Remove unused fini method 2022-01-18 09:26:30 -07:00
Behdad Esfahbod 6d555ce82e [meta] Use std::forward instead of hb_forward() 2021-11-02 00:18:22 -06:00
Behdad Esfahbod f0a1892ff9 [serialize] Remove unnecessary pointer indirection 2021-07-28 17:36:22 -06:00
Behdad Esfahbod 6d94194497 Use auto in range-for-loop more 2021-02-19 17:10:06 -07:00
Ebrahim Byagowi 08428a15c3 minor, spacing 2020-04-24 23:45:17 +04:30
Ebrahim Byagowi 2be859d289 minor, replace nullptr checks with implicit ones 2020-04-21 00:30:34 +04:30
Ebrahim Byagowi 2dda6dd744 minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
2020-04-20 16:18:29 +04:30
Ebrahim Byagowi a224f4179f
Turn more of simple dagger chains to foreach
Less noise, as was agreed before and applied 385741d also
2020-03-13 08:33:34 +03:30
blueshade7 4c3af7d406 add "add_link()" with bias arg
issue #2227
2020-03-08 18:48:56 +03:30
ariza e8f010d793 removed unused code & data; rename 2020-03-05 10:11:23 +03:30
ariza c05458ec7f update cff & cff2 subsetters 2020-03-05 01:22:51 +03:30
ariza 002f0e20c4 reimplment serialize_int using check_assign() 2020-02-28 14:21:58 +03:30