Behdad Esfahbod
998b0b68ac
[serializer] Add copy() to (Unsized)ArrayOf
2019-05-02 14:39:52 -07:00
Behdad Esfahbod
88a4147240
[serializer] Accept exact type in serialize_subset/copy()
2019-05-02 14:22:31 -07:00
Behdad Esfahbod
88fdeeecc0
[serialize] Take arguments in copy()
2019-05-02 14:14:33 -07:00
Behdad Esfahbod
273ed6127b
[serializer] Add serialize_copy()
2019-05-02 14:04:51 -07:00
Behdad Esfahbod
bf22338f49
Remove dead code
2019-05-02 13:51:52 -07:00
David Corbett
14e1fabc41
Sync gen-vowel-constraints.py with current output
2019-05-01 21:29:06 -04:00
David Corbett
026ab825c8
Add dotted circles to more broken clusters
2019-05-01 13:59:34 -07:00
Ebrahim Byagowi
92588782d7
Remove space between right angle brackets now that we have C++11 ( #1689 )
2019-04-30 13:05:10 -07:00
Ebrahim Byagowi
f27fdca4aa
[doc] Add documentation to hb_color_get_* and hb_directwrite_face_* ( #1690 )
2019-04-30 13:01:04 -07:00
David Corbett
fe4a0ac707
Fix some dead links
2019-04-30 13:35:50 -04:00
Ebrahim Byagowi
9542bdd0ed
Add color channels getters ABI ( #1513 )
...
So can be used with language wrappers
2019-04-29 14:52:28 -07:00
David Corbett
4aa546b70a
Allow some Balinese Po & So as aksara modre bases
2019-04-29 11:37:35 -07:00
Behdad Esfahbod
6977a95fed
[subset] Don't crash if subsetting GSUB/GPOS fails
...
Fixes fuzzer issue.
2019-04-27 10:05:25 -07:00
Behdad Esfahbod
2b051e7aa1
[subset] Check error after calling serializer end
2019-04-27 10:01:11 -07:00
Behdad Esfahbod
750b65e9a9
[meta] Add hb_type_identity<>
...
To block template argument deduction.
2019-04-26 17:14:25 -07:00
Qunxin Liu
8c8922a019
[subset] Updates due to changes in resolve_links() on master branch
2019-04-26 15:24:47 -07:00
Garret Rieger
2f6ec35344
Move implementations of hb-ot-name-language.cc into a hb-static.cc
2019-04-26 15:24:47 -07:00
Qunxin Liu
19afd25004
[subset] Update to use _subset2() for name table
2019-04-26 15:24:47 -07:00
Qunxin Liu
1ca4b5c770
[subset] Add unit test for str de-dup
...
Also move the implementation of some methods from the .cc to the .hh
2019-04-26 15:24:47 -07:00
Qunxin Liu
9ad14f56b6
[subset] update name table subsetting with new serializer
2019-04-26 15:24:47 -07:00
Qunxin Liu
e501ea143d
[subset] Subset name table step 3, add --nameids option to guide the
...
selection of which name records to keep in the subset method.
2019-04-26 15:24:47 -07:00
Qunxin Liu
2637a81615
[subset] subset name table step 2, add implementation for collecting subset
...
elements and serialize method
2019-04-26 15:24:47 -07:00
Qunxin Liu
408c1daeb4
[subset] subset name table step 1, write out table unmodified, use accelerator to access
...
string
2019-04-26 15:24:47 -07:00
Behdad Esfahbod
3a7f5bdd18
Rewrite hb_is_signed()
2019-04-26 14:40:01 -07:00
Behdad Esfahbod
73c82f2301
[iter] Fix hb_is_iterator_of() to actually check item type
2019-04-26 13:16:48 -07:00
Behdad Esfahbod
c51f15ddfc
[array] Adjust hb_sorted_array_t copy constructor/assignment to match hb_array_t
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
b2758c360c
[array] Use hb_is_cr_convertible_to()
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
8ecae793aa
[meta] Add hb_is_cr_convertible_to()
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
52bb0346d3
[meta] Add hb_decay<>
2019-04-26 13:04:06 -07:00
Michiharu Ariza
474f3587cd
copy retain_gids from input to plan
2019-04-26 10:12:38 -07:00
Behdad Esfahbod
c69f02784a
Fix sign-compare error on 32-bit systems
2019-04-24 16:31:37 -07:00
Behdad Esfahbod
59a8fa5353
[iter] Add tests for casting to hb_iter_t<> base class for hb_sorted_array_t<>
...
Something's phishy about hb_sorted_array_t<>. Can't get it work nicely with
change I'm making. Ugh..
2019-04-24 12:49:58 -04:00
Behdad Esfahbod
714307cc43
[iter] Remove fixed TODO
2019-04-24 10:56:12 -04:00
Behdad Esfahbod
22da12318a
[map] Fix TODO
2019-04-24 10:53:47 -04:00
Behdad Esfahbod
4c6136e976
[mutex] Remove TODO
2019-04-24 10:53:44 -04:00
Behdad Esfahbod
0268db1196
[map] Use hb_invoke() with pointer-to-method
2019-04-24 10:53:39 -04:00
Behdad Esfahbod
8f79a5750e
[algs] Add more hb_forward<>()'s
2019-04-24 10:32:49 -04:00
Behdad Esfahbod
42526d1697
[serialize] Fix SingleSubstFormat1 failure
2019-04-24 10:24:33 -04:00
Behdad Esfahbod
6cc9707c9c
[serialize] Rename
2019-04-24 10:22:06 -04:00
Behdad Esfahbod
085793d6cd
Remove wrong TODOs
2019-04-24 10:15:59 -04:00
Behdad Esfahbod
915b9ea5f4
[serialize] Add c->check_assign()
...
To check for assignment overflows.
2019-04-24 10:07:19 -04:00
Behdad Esfahbod
00a00bc1f2
Fix two TODOs
2019-04-24 10:01:30 -04:00
Behdad Esfahbod
11ab889a8d
Rename a few test programs
2019-04-24 09:55:24 -04:00
Behdad Esfahbod
12017db0bf
Move test code around
2019-04-24 09:24:38 -04:00
Behdad Esfahbod
27377a7e28
Rely on variadic parameter pack more
2019-04-24 09:22:14 -04:00
Behdad Esfahbod
3ad20c38ad
[serialize] Fix a few overflow TODO items
2019-04-24 09:09:00 -04:00
Behdad Esfahbod
175bdad8bf
One more variadic parameter pack use
2019-04-23 23:57:11 -04:00
Behdad Esfahbod
441cca2354
Use hb_forward() when forwarding parameter pack
2019-04-23 23:51:59 -04:00
Behdad Esfahbod
20f3134789
Use variadic templates in OffsetTo<> and various ArrayOf<>s
2019-04-23 12:59:17 -04:00
Ebrahim Byagowi
64ca2ffa4c
Fix clang's -Wmain complain ( #1678 )
2019-04-23 01:10:46 -07:00
Behdad Esfahbod
25dd88efc6
Err, fix hb_invoke() variadic
2019-04-22 17:47:07 -04:00
Behdad Esfahbod
c862a532df
Add variadic arguments to hb_invoke()
2019-04-22 17:32:19 -04:00
Behdad Esfahbod
9c724e48a2
[serializer] Add err_propagaged_error()
2019-04-22 17:21:42 -04:00
Behdad Esfahbod
ae8da4b61b
Minor
2019-04-22 15:25:11 -04:00
Behdad Esfahbod
24da1d0860
Use variadic template args for propagate_error()
...
Let's see if bots happy.
Not sure where else we can use these. Mm. Maybe in hb_invoke().
2019-04-22 15:20:25 -04:00
Behdad Esfahbod
9bab398462
Simplify propagate_error()
2019-04-22 15:16:35 -04:00
Behdad Esfahbod
42f4bd6b80
Minor warning fix again
2019-04-18 19:06:07 -04:00
Michiharu Ariza
267fb9c716
add spaces
2019-04-18 18:18:05 -04:00
Michiharu Ariza
ba0386060d
fix oss-fuzz issue 14345
2019-04-18 18:18:05 -04:00
Michiharu Ariza
63a2108480
silence MVC warnings 3rd attempt
2019-04-18 13:54:58 -07:00
Michiharu Ariza
705dde57fe
silence MVC warnings 2nd attempt
2019-04-18 11:32:10 -07:00
Michiharu Ariza
dd4c37529b
silence MVC warnings
2019-04-18 10:38:57 -07:00
Behdad Esfahbod
518e6e07f2
Minor
2019-04-18 12:21:25 -04:00
Behdad Esfahbod
91d958acc0
[array] Simplify copy assignment/constructor
...
To fix bogus MSVC warnings:
c:\projects\harfbuzz\src\hb-array.hh(189): warning C4521: 'hb_array_t<Type>': multiple copy constructors specified [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
c:\projects\harfbuzz\src\hb-array.hh(189): warning C4522: 'hb_array_t<Type>': multiple assignment operators specified [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2019-04-18 10:04:10 -04:00
Behdad Esfahbod
693d91cd49
[serialize] Fix offset calculation
2019-04-17 17:59:39 -04:00
Behdad Esfahbod
db0c9a1485
[subset] Assert offsets are zero during relocation
...
If they're not, it's a bug in our subsetting logic somewhere. So check.
2019-04-17 17:58:13 -04:00
Behdad Esfahbod
efbba7ad26
[serializer] Add copy()
...
Calls obj.copy() or obj.operator=() in that order.
2019-04-17 11:00:08 -04:00
Behdad Esfahbod
c67a0d581f
Add HB_RETURN
2019-04-17 10:29:10 -04:00
David Corbett
6745a600bf
Comment out ot_languages where fallback suffices
2019-04-17 10:28:59 -04:00
David Corbett
5daeff3e68
Fix "hb_script_" doc typo
2019-04-17 10:06:13 -04:00
Behdad Esfahbod
6916b77863
One more auto return type
2019-04-16 18:33:51 -04:00
Behdad Esfahbod
5b33427f2c
Rename HB_AUTO_RETURN_EXPR to HB_AUTO_RETURN
2019-04-16 18:28:17 -04:00
Behdad Esfahbod
da293b0e59
Use HB_AUTO_RETURN_EXPR in hb_min/max
2019-04-16 18:27:25 -04:00
Behdad Esfahbod
0241a40f2a
Use auto return type for hb_first/hb_second
2019-04-16 18:26:30 -04:00
Behdad Esfahbod
fe30fcd228
Use hb_deref_pointer() to reduce number of overloads
2019-04-16 17:34:06 -04:00
Behdad Esfahbod
c918a6706f
Properly prioritize hb_hash()
2019-04-16 17:28:18 -04:00
Behdad Esfahbod
75fd845a4a
Move around
2019-04-16 17:22:29 -04:00
Behdad Esfahbod
973717175d
Fix priorities
2019-04-16 16:50:07 -04:00
Behdad Esfahbod
54ece299bc
Use type aliasing for meta-functions, ie. those returning a type
2019-04-16 16:45:53 -04:00
David Corbett
1ce11b4437
Reduce LangTag from 3 language system tags to 1
2019-04-16 11:41:01 -04:00
Behdad Esfahbod
155e92f259
Reduce NullPool size
2019-04-16 11:35:09 -04:00
Behdad Esfahbod
4fc2d2d724
[meta] Flesh out hb_invoke()
2019-04-16 11:24:42 -04:00
Behdad Esfahbod
e03d9395aa
Comment
2019-04-16 11:20:16 -04:00
Behdad Esfahbod
b8e763fd71
[meta] Add hb_invoke()
2019-04-16 10:54:24 -04:00
Behdad Esfahbod
a3fcb9a370
[meta] Add HB_AUTO_RETURN_EXPR, HB_VOID_RETURN_EXPR, hb_priority, hb_has(), hb_get()
...
The first three based on range-v3.
2019-04-16 10:45:57 -04:00
Behdad Esfahbod
ff68be31bf
Add hb_void_tt<> ala std::void_t
2019-04-16 09:59:51 -04:00
Behdad Esfahbod
89fea21697
Fix copyright
2019-04-15 17:36:09 -04:00
Behdad Esfahbod
07776b6096
More tweaks to previous commit
...
Delete assignment operator of OffsetTo<> instead of Offset<>.
In simple ArrayOf<>::sanitize() assert that Type has assignment operator.
Ideally we should SFINAE this and fallback to calling Type::sanitize()
if assignment operator is not available. But we don't have a case of
that in the codebase.
2019-04-15 16:43:34 -04:00
Behdad Esfahbod
699de689e9
Delete default assignment operator Offset<>
2019-04-15 16:00:20 -04:00
Behdad Esfahbod
02d864aa26
Add HB_FUNCOBJ()
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1651
2019-04-15 15:39:30 -04:00
Behdad Esfahbod
38b1d0b9b2
Move static const to post-struct for a function object
...
Just sending this to bots to see if all happy, then turn it into macro and
apply everywhere.
Part of https://github.com/harfbuzz/harfbuzz/issues/1651
2019-04-15 12:45:21 -04:00
Behdad Esfahbod
19e800c9d8
Ugh. Another try, to unbreak gcc this time!
...
Jenga.
2019-04-15 12:07:00 -04:00
Behdad Esfahbod
3a88f55c15
Move location of HB_UNUSED to make MSVC happy
2019-04-15 11:59:57 -04:00
Behdad Esfahbod
1ae265888e
Fix gcc warning
2019-04-15 11:31:40 -04:00
Nathan Willis
cd9889cac3
Docs: update and extended GTK-Doc comments for hb-ot-math.
2019-04-14 15:33:56 +01:00
Nathan Willis
3f74b7a14b
Docs: Regularize GTK-Doc comments for hb-ot-color.
2019-04-14 15:20:56 +01:00
Behdad Esfahbod
47e538a35f
Add HB_NO_SUBSET_LAYOUT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 22:54:15 -04:00
Behdad Esfahbod
a98e4068e7
Revert "Hide symbols in hb-iter"
...
This reverts commit 98f14c4cdb
.
Same as previous commit.
2019-04-12 22:42:44 -04:00
Behdad Esfahbod
dab92bdd46
Revert "Hide more symbols"
...
This reverts commit 2e86d50915
.
I think the setup that caused me to do this is faulty and not hiding inlines.
2019-04-12 22:39:38 -04:00
Behdad Esfahbod
98f14c4cdb
Hide symbols in hb-iter
...
Painful. All template methods need to be explicitly hidden :(.
Maybe we should switch to -fvisibility=hidden pragma.
A LOT more to go.
2019-04-12 18:12:06 -04:00
Behdad Esfahbod
2e86d50915
Hide more symbols
...
Exposed by:
$ make -j5 CPPFLAGS="-O0" CXXFLAGS=-flto=thin LDFLAGS=-lc++ && ./check-symbols.sh
2019-04-12 18:07:42 -04:00
Behdad Esfahbod
caa20e4ef9
Hide a few more symbols
...
Exposed by:
$ make CPPFLAGS=-O0
2019-04-12 18:00:58 -04:00
Behdad Esfahbod
95df00aec1
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++
2019-04-12 17:51:14 -04:00
Behdad Esfahbod
2f4be4ba54
Add HB_NO_OPTIONS
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 16:21:58 -04:00
Behdad Esfahbod
079d2dcbb2
Add HB_NO_NAME_TABLE_AAT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 15:00:37 -04:00
Behdad Esfahbod
60a58aa61c
Add HB_NO_OT_FONT_BITMAP
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:58:53 -04:00
Behdad Esfahbod
160c4d8b2d
Add HB_NO_OT_FONT_CFF
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:57:49 -04:00
Behdad Esfahbod
35f3b97fac
Add HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:16:12 -04:00
Behdad Esfahbod
414c5de26b
Add HB_NO_OT_SHAPE_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:12:11 -04:00
Behdad Esfahbod
fe0018f7ef
Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:35:29 -04:00
Behdad Esfahbod
9ddbfa006d
Add HB_NO_OT_LAYOUT_BLACKLIST
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:33:25 -04:00
Behdad Esfahbod
571fad4cf1
Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-11 19:42:05 -04:00
Nathan Willis
3db227265b
Update gtk-doc annotations for inout counts on various getter functions.
2019-04-12 00:00:47 +02:00
Nathan Willis
c08ddbd91b
[Docs] Minor edits to gtk-doc inline comment review.
2019-04-12 00:00:47 +02:00
Nathan Willis
af5230bce3
[Docs] Minor; fix formatting for gtk-doc multiple-annotations.
2019-04-12 00:00:47 +02:00
Nathan Willis
6c0a1e8cd6
[Docs] Annotate gtk-doc formatting with some un-annotated (out)s.
2019-04-12 00:00:47 +02:00
Nathan Willis
5122805c74
[Docs] Fix gtk-doc formatting for (out) and (inout).
2019-04-12 00:00:47 +02:00
Nathan Willis
d3178aa52a
[Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is not examined.
2019-04-12 00:00:47 +02:00
Nathan Willis
3449031fad
[Docs] Add inline gtk-doc documentation of GDEF glyph classes.
2019-04-12 00:00:47 +02:00
Nathan Willis
930f6fc3da
[Docs] Add inlind gtk-doc comments for hb-ot-layout functions.
2019-04-12 00:00:47 +02:00
Behdad Esfahbod
b52c0e54b9
Use injected class name to simplify macros
2019-04-11 11:20:10 -04:00
Behdad Esfahbod
baf1e79075
[C++11] Use deleted methods
2019-04-11 11:18:04 -04:00
Behdad Esfahbod
824fd342d5
Rename a few macros
2019-04-11 11:16:01 -04:00
Behdad Esfahbod
edfc6be4a0
[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 16:10:54 -04:00
Behdad Esfahbod
4d31662b5d
Don't install ot-font funcs on new fonts if HB_NO_OT_FONT defined
...
Currently linker cannot GC hb-ot-font completely because we install
it on fonts by default. Don't do that if HB_NO_OT_FONT defined.
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:40:55 -04:00
Behdad Esfahbod
b111b3de02
Don't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:39:48 -04:00
Behdad Esfahbod
c5509be93a
[coretext] Fix unused-variable error
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1659
2019-04-08 14:50:58 -04:00
Maks Naumov
4c19aa2620
Fix MSVC C4068 warning ( #1656 )
2019-04-05 11:46:27 -07:00
Maks Naumov
a96d003d6e
Fix MSVC C4138 warning ( #1657 )
2019-04-05 02:29:56 -07:00
Behdad Esfahbod
c68eb7002f
Minor
2019-04-03 16:24:12 -07:00
Behdad Esfahbod
85adf4ad5c
[GDEF] Don't assume glyphlist is sorted
...
As was hit by the fuzzer.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14032
2019-04-03 16:07:36 -07:00
Behdad Esfahbod
ecabdffc61
[algs] Add hb_min() and hb_max()
2019-04-03 16:06:34 -07:00
Behdad Esfahbod
7b863142ce
[serialize] Make putting breakpoint on out-of-memory easier
2019-04-03 15:48:27 -07:00
Behdad Esfahbod
2bd2750234
[iter] Tweak SFINAE again
...
Don't think we need hb_is_same().
2019-04-03 15:31:53 -07:00
Behdad Esfahbod
f02ebc89ec
[array] Add compy assignment operator since copy constructor is explicit
2019-04-03 15:23:06 -07:00
Behdad Esfahbod
20a73da2c9
[array] Add default copy constructor
...
MSVC seems to need it.
2019-04-03 14:32:15 -07:00
Behdad Esfahbod
d419a9a437
[iter] Use different SFINAE scheme to make MSVC happy
...
From Orvid King: TLDR; MSVC has some issues using sizeof(declval<T>()) for
SFINAE of templated types, so I just used SFINAE in a different context where
MSVC doesn't have the issue.
2019-04-03 14:18:19 -07:00
Behdad Esfahbod
2778df7972
[meta] Add hb_is_same()
2019-04-03 14:15:01 -07:00
Behdad Esfahbod
6215fb8e68
[serialize] Actually reclaim storage from duplicate objects
2019-04-02 23:10:03 -07:00
Behdad Esfahbod
3305a2cad2
[serialize] Port to use object pool
...
Tested, but feels fragile :(.
2019-04-02 22:58:49 -07:00
Behdad Esfahbod
5efbc01174
[pool] Uses memset() instead of assigning Null()
...
Assignment is invalid on invalid object.
2019-04-02 22:41:06 -07:00
Behdad Esfahbod
434d78bf91
Add hb_pool_t<> for pooled memory allocation
2019-04-02 21:46:40 -07:00
Behdad Esfahbod
8e4df1a152
[serialize] Disable packed_map again
...
Ugh. Need to think of something else.
2019-04-02 20:20:53 -07:00
Behdad Esfahbod
31c1a83899
[map] Protect more against pointer deref
2019-04-02 20:17:27 -07:00
Behdad Esfahbod
5bffa9e375
More
2019-04-02 20:13:16 -07:00
Behdad Esfahbod
5b66b033fd
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
2019-04-02 19:30:22 -07:00
Behdad Esfahbod
42ab32cbba
[iter] Remove passing pointer to hb_iter()
...
While doable with hb_deref_pointer() as well, we also would then
need to do it in a ton of places. Not worth it / messy.
2019-04-02 18:42:51 -07:00
Behdad Esfahbod
d0da547b37
[array] Use dagger for hashing array
...
Also switch to better mixing.
2019-04-02 18:23:05 -07:00
Behdad Esfahbod
b6f29bf141
[iter] Accept pointers in hb_iter()
...
No idea how to avoid dupicating code. Was hoping hb_deref_pointer()
would do it, but looks like a pointer can't bind to a universal
reference T&&. Humm.
2019-04-02 18:12:01 -07:00
Behdad Esfahbod
fc24bb9046
[serialize] Towards maintaining packed_map
2019-04-02 17:49:52 -07:00
Behdad Esfahbod
aa2293a55e
[serialize] Minor
2019-04-02 17:42:10 -07:00
Behdad Esfahbod
e42b82c828
[serialize] Handle non-nullable offsets
2019-04-02 17:23:16 -07:00
Behdad Esfahbod
e04518bafc
[serialize] Movce empty-object handling earlier
2019-04-02 17:20:04 -07:00
Behdad Esfahbod
7f73c9744e
[serialize] Minor
2019-04-02 17:12:24 -07:00
Behdad Esfahbod
5a3de4f4f8
[serialize] Allow offset links that have base offset from the object base
...
Rarely used, but used, in name table or similar constructs.
2019-04-02 16:53:42 -07:00
Ebrahim Byagowi
edad6b2c45
[test][iter] minor, fix double promotion warning
2019-04-03 00:48:59 +04:30
Ebrahim Byagowi
062f5d6e7a
[test] minor, c style comments
2019-04-02 20:27:00 +04:30
Ebrahim Byagowi
afdbf960d6
[iter][test] Add another test for hb_reduce
...
Different initial and accumulator types
2019-04-02 20:25:06 +04:30
Behdad Esfahbod
bfa02bef45
[serialize] Switch to tetris-packing
2019-04-01 21:36:13 -07:00
Behdad Esfahbod
f0ea3ac17b
[serialize] Fix linking
2019-04-01 21:36:03 -07:00
Behdad Esfahbod
7c0e2054e0
[serialize] Minor
2019-04-01 21:32:29 -07:00
Behdad Esfahbod
64d0f08938
[cmap] Minor
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
2e675cc7b5
[subset] Call serialize start/end around it
...
To be cleaned up.
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
abe33c6149
[serialize] Assert stack
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
72e9b2c16c
[serialize] Add add_link() to add link
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
74addbecac
[serialize] Add default template type to push()
2019-04-01 16:56:41 -07:00
Ebrahim Byagowi
b8642087e6
[iter] hb_reduce, accumulator with a different type
2019-04-01 16:56:29 -07:00
Ebrahim Byagowi
e526414c75
[iter] Implement hb_reduce
2019-04-01 16:56:29 -07:00
Behdad Esfahbod
f3aca6aa26
[serialize] Implement linking
...
Untested!
2019-03-31 21:37:14 -07:00
Behdad Esfahbod
17f0cfa7ea
Move BEInt to hb.hh
...
I knows...
2019-03-31 21:34:19 -07:00
Behdad Esfahbod
78fc43f293
[iter] Fix up build, ouch
...
Yeah, some things not very clear...
2019-03-31 19:17:07 -07:00
Jonathan Kew
e5d6fe9782
Don't skip setting the .end field of the first range
...
Fixes a bug in CoverageFormat2::serialize whereby the first range
was not serialized correctly if it consists of only a single glyph ID.
This broke shaping of U+0626 in the Arabic fallback shaper, because it
is not found in the coverage table of the 'init' and 'medi' lookups.
Also fix similar bug in ClassDefFormat2::serialize, noted during code
inspection (I haven't observed a case that was actually affected by
this, but it looks broken).
Fixes https://github.com/harfbuzz/harfbuzz/issues/1504
2019-03-31 19:02:47 -07:00
Behdad Esfahbod
8a8d45b924
[iter] Adjust hb_copy() and use it
...
Untested.
2019-03-31 19:00:09 -07:00
Ebrahim Byagowi
ba4b7be455
Remove coretext_aat shaper ( #1581 )
...
coretext_aat was a temporary shaper to redirect shaping of AAT fonts
to CoreText and leaving the rest for HarfBuzz. As HarfBuzz now supports
AAT and Chrome now actually ships that on a stable version on macOS,
we no longer care about such use-case. If a client really wants 100%
metrics compatibility with CoreText better to use it directly or through
our API. Replicating the same behavior still is possible using
hb_shape_full, something we don't care or like to offer anymore.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1478
2019-03-31 01:32:30 -07:00
Behdad Esfahbod
d6005b49b3
[serialize] Start implementing linking
2019-03-30 19:49:56 -07:00
Behdad Esfahbod
313b3057c3
[serializer] Implement dedup!
2019-03-30 19:46:35 -07:00
Behdad Esfahbod
b189bbc48f
Implement hashing of objects
...
Should be improved for hb_bytes_t.
2019-03-30 19:41:48 -07:00
Behdad Esfahbod
d6b28057a5
Fix hb_hash(pointer)
2019-03-30 19:31:51 -07:00
Behdad Esfahbod
d74dc3ef65
[serialize] Don't insert empty object into tree
2019-03-30 19:26:37 -07:00
Behdad Esfahbod
7fd8228326
[serialize] Towards maintaining hashmap
2019-03-30 19:16:20 -07:00
Behdad Esfahbod
f254f45a1e
[serialize] Only pack main object if there are other objects
...
Avoids a memmove for tables that don't use the object packing mechanism.
2019-03-30 19:05:51 -07:00
Behdad Esfahbod
946d446f9b
[serialize] Copy both sides of the buffer
2019-03-30 19:03:55 -07:00
Behdad Esfahbod
8512dc565d
[serialize] Simplify copy
2019-03-30 19:01:23 -07:00
Behdad Esfahbod
0b1fe7b716
[serializer] Unbreak for now
2019-03-30 18:48:26 -07:00
Behdad Esfahbod
10f062234e
[map] Shuffle fini code
2019-03-30 18:44:01 -07:00
Behdad Esfahbod
e6b78003ef
[vector] Add move semantics
2019-03-30 18:33:30 -07:00
Behdad Esfahbod
4c4d3c3ed5
[vector] Add some move and forwarding
2019-03-30 18:30:50 -07:00
Behdad Esfahbod
7c9ceabcef
[meta] Add hb_move and hb_forward ala std::
2019-03-30 18:23:24 -07:00
Behdad Esfahbod
9a19b885f9
[serialize] Flesh out packing
2019-03-30 18:14:30 -07:00
Behdad Esfahbod
357c7c611c
[vector] Add copy constructor and assignment operator
2019-03-30 18:13:57 -07:00
Behdad Esfahbod
6f69c9d26f
[serialize] Minor
2019-03-30 18:00:03 -07:00
Behdad Esfahbod
a43290192b
[serialize] Add packed_map
2019-03-30 17:57:33 -07:00
Behdad Esfahbod
bed150bd2e
[serialize] Start fleshing out object stack
2019-03-30 17:43:43 -07:00
Behdad Esfahbod
63c3565189
[serialize] Simplify propagate_error()
2019-03-30 17:12:40 -07:00
Behdad Esfahbod
dbe9ba6711
[serialize] Add object_t, link_t, and snapshot_t
2019-03-30 17:10:59 -07:00
Behdad Esfahbod
38d57b9a66
[map] Add another TODO item
2019-03-30 16:38:06 -07:00
Behdad Esfahbod
7fd940f899
[map] Add TODO
2019-03-30 16:29:19 -07:00
Behdad Esfahbod
6dcf7c4017
[serialize] Add unused 'tail'
2019-03-30 15:08:39 -07:00
Behdad Esfahbod
fe05e48086
[serialize] Add ran_out_of_room
2019-03-30 15:06:25 -07:00
Behdad Esfahbod
a7c63cd8f8
Split sanitize and dispatch into their own files
2019-03-30 14:59:40 -07:00
Behdad Esfahbod
be66b575fc
Move serializer to hb-serialize.hh
2019-03-30 14:53:54 -07:00
Behdad Esfahbod
bb22462f29
Whitespace
2019-03-30 14:46:54 -07:00
Behdad Esfahbod
ef33b5d1f6
[map] Deref pointers before equality check
2019-03-30 14:39:21 -07:00
Behdad Esfahbod
c98f51da71
[map] Templatize hb_map_t
...
Template name is hb_hashmap_t<K,V>.
2019-03-30 14:32:52 -07:00
Behdad Esfahbod
4b7f4dbc0c
Add hb_deref_pointer()
2019-03-30 13:48:32 -07:00
Behdad Esfahbod
e530692799
[iter] Fix bug in hb_any() and hb_none()
2019-03-29 23:31:39 -07:00
Behdad Esfahbod
f505b5d5c9
[iter] Port remaining "for (auto" instances to daggers
2019-03-29 22:55:02 -07:00
Behdad Esfahbod
668d2d562f
[iter] One more dagger
2019-03-29 22:48:38 -07:00
Behdad Esfahbod
d51452500f
[iter] Remove more wrong &&'s
...
Sigh...
2019-03-29 22:48:12 -07:00
Behdad Esfahbod
05f2130a1c
[iter] More daggers
2019-03-29 22:43:12 -07:00
Behdad Esfahbod
22ec4c3aa5
[iter] More daggers
2019-03-29 22:29:00 -07:00
Behdad Esfahbod
688069bbfb
[iter] One more dagger
2019-03-29 22:17:31 -07:00
Behdad Esfahbod
90b60bd690
Remove HB_DEBUG_WOULD_APPLY
...
Not that useful.
2019-03-29 22:12:42 -07:00
Behdad Esfahbod
4d28267e59
[iter] Port more to daggers
2019-03-29 22:04:15 -07:00
Behdad Esfahbod
9d8c72042b
Whitespace
2019-03-29 21:59:28 -07:00
Behdad Esfahbod
418e9d07e2
Simplify code
2019-03-29 21:57:26 -07:00
Behdad Esfahbod
f5ef8a7347
[iter] Port one more function to dagger
2019-03-29 21:57:17 -07:00
Behdad Esfahbod
bcab098c8f
[iter] Port more code to daggers
2019-03-29 21:49:18 -07:00
Behdad Esfahbod
4c75158e18
[iter] Port two more functions to daggers
2019-03-29 21:46:13 -07:00
Behdad Esfahbod
e70ccbe9ed
Fix pair signature
...
Oh well. Again, who does fully understand what is right???
2019-03-29 21:45:49 -07:00
Behdad Esfahbod
6237b47f0c
[iter] Add hb_unzip()
2019-03-29 21:36:49 -07:00
Behdad Esfahbod
f1dad91eb3
Whitespace
2019-03-29 21:17:08 -07:00
Behdad Esfahbod
896b31670d
[iter] Port two more loops to dagger
2019-03-29 21:16:30 -07:00
Behdad Esfahbod
8e34cb251a
[iter] Remove unneeded &&
...
Next commit needs this. I never fully get this, sigh.
2019-03-29 21:14:20 -07:00
Behdad Esfahbod
12a4c0441f
Whitespace
2019-03-29 21:06:10 -07:00
Behdad Esfahbod
4c38a9f601
Remove hb_assign()
...
Not needed anymore. We just use operator= now.
2019-03-29 20:23:07 -07:00
Behdad Esfahbod
b986c6a321
[C++11] Remove IntType::set() in favor of operator=
2019-03-29 20:21:21 -07:00
Behdad Esfahbod
58ad357951
[vector] Accept all types in push(...)
...
Let assignment operator worry about conversion.
2019-03-29 20:05:19 -07:00
Behdad Esfahbod
489faf826c
[C++11] Use type aliases for template partial instantiations
2019-03-29 20:01:37 -07:00
Behdad Esfahbod
4fd02f6ee5
Remove unused line
2019-03-29 17:58:23 -07:00
Behdad Esfahbod
9a5b15dc1e
[C++11] Replace BEInt.set() with operator=
2019-03-29 17:58:19 -07:00
Behdad Esfahbod
0aa59b1de3
[C++11] Add operator= to IntType<>
...
Now that we require C++11 we can do this.
2019-03-29 17:58:15 -07:00
Behdad Esfahbod
eca466e6b1
Err. Fixup C++11 polyfill removal
...
Fixes 1d75db19fb
2019-03-29 15:59:04 -07:00
Behdad Esfahbod
3f36c89f2e
Inline explicit_operator macro
...
Now that we require C++11, no need to macro.
2019-03-29 15:22:46 -07:00
Behdad Esfahbod
1d75db19fb
Remove C++<11 polyfill
...
Leaving hb-atomic.hh as is since harmless and other projects might
copy from that file.
2019-03-29 15:20:34 -07:00
Behdad Esfahbod
8e7887ca5f
Merge branch 'master' into iter
2019-03-29 14:37:04 -07:00
Ebrahim Byagowi
b292772e6e
[dwrite] A new API, hb_directwrite_face_get_font_face ( #1600 )
...
Can be useful when using HarfBuzz for font loading and shaping
but using DirectWrite for rendering.
2019-03-29 13:00:56 -07:00
Behdad Esfahbod
59f36f3682
Replace REPLACEME's left out of 2.4.0
...
https://github.com/harfbuzz/harfbuzz/issues/1641
2019-03-29 10:55:12 -07:00
Behdad Esfahbod
443db2a246
[iter] Remove hb_len()
...
Not planning on using it. So remove. Can add later if needed.
2019-03-29 10:47:13 -07:00
Behdad Esfahbod
bdd5a9c48d
Add hb_hash()
...
I don't like the hb_remove_reference() hack, but necessary.
2019-03-28 21:58:07 -07:00
Behdad Esfahbod
343e6063dc
Add hb_is_integer(T)
2019-03-28 21:44:12 -07:00
Behdad Esfahbod
f639b9a8ea
[iter] Add hb_len() function-object
2019-03-28 21:34:47 -07:00
Behdad Esfahbod
a030ce4ff8
Merge branch 'master' into iter
2019-03-28 21:26:50 -07:00
Behdad Esfahbod
d6fc1d49aa
2.4.0
2019-03-28 21:21:26 -07:00
Behdad Esfahbod
d2db71fdc4
Use internal bsearch() for language tags
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1639
2019-03-28 21:04:34 -07:00
Behdad Esfahbod
21bb80ebf2
[indic] Add back medial-consonant to grammar
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1592
2019-03-28 20:50:04 -07:00
Behdad Esfahbod
5ab6de7a6f
[khmer] Add trailing Coeng to syllable grammar
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1541
2019-03-28 20:23:12 -07:00
Behdad Esfahbod
160b4a2b01
Fix shell syntax error
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1612
2019-03-28 13:44:59 -07:00
Behdad Esfahbod
8665b9b0a2
Comment
2019-03-28 13:44:59 -07:00
punchcutter
a7eed7e41d
Override USE category for Grantha and Tirhuta visargas to allow marks
2019-03-28 13:31:45 -07:00
Egor Pugin
cf040c0fef
Disable unwanted C++ definitions for MSVC.
...
MSVC does not set __cplusplus to the latest standard and also it does not like redefining some keywords.
2019-03-28 11:10:42 -07:00
Behdad Esfahbod
ec2a5dc859
Use class templates for Null objects
...
This allows partial-instantiating custom Null object for template Lookup<T>.
Before, this had to be handcoded per instantiation. Apparently I missed
adding one for AAT::ankr.lookupTable, so it was getting the wrong (generic)
null for Lookup object, which is wrong and unsafe.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=944346
2019-03-26 16:23:40 -07:00
Behdad Esfahbod
96f1237794
[aat] Add missing check to ankr table
...
Isn't absolutely needed. But helps.
2019-03-26 16:17:45 -07:00
Qunxin Liu
2d9034491e
completely remove lines that are commented out
2019-03-26 13:39:33 -07:00
Qunxin Liu
3147133b61
update arguments in_populate_gids_to_retain() and _create_old_gid_to_new_gid_map()
...
so they don't use deprecated variable
2019-03-26 13:39:33 -07:00
Qunxin Liu
79a6c25849
try to remove deprecated variable from struct definition
2019-03-26 13:39:33 -07:00
Michiharu Ariza
bcb4e505d6
cff2 subset fuzzer issues ( #1619 )
...
* add check to FDArray::serialize
* add test files
* fix off by one
2019-03-15 13:46:25 -07:00
Ebrahim Byagowi
8aaab78efc
Allow zero length ranges in sanitization ( #1617 )
...
Fixes fvar table sanitization where there are no named instance
by allowing zero length ranges starting from Null() address.
Fixes #1607
2019-03-14 16:49:42 -07:00
David Corbett
7de9f92ee9
Categorize U+09FC as Consonant_Placeholder
2019-03-13 12:59:56 -07:00
Behdad Esfahbod
e52ec3fc23
Remove redundant hb_ot_layout_lookup_would_substitute_fast
2019-03-11 18:09:51 -07:00
Khaled Hosny
c2442c90d6
[doc] Add placeholder since version for new flag
2019-03-12 01:10:52 +02:00
David Corbett
8c42f03215
Remove obsolete overrides from Indic/USE scripts
2019-03-11 16:07:52 -07:00
Eric Muller
b38bab8622
Update generation code for hb-ot-shape-complex-vowel-constraints.cc. Remove 'unlikely'
2019-03-11 16:06:41 -07:00
Eric Muller
44a67ddeb8
Fix coding style.
2019-03-11 16:06:41 -07:00
Eric Muller
30d7c40f8c
Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences.
...
Current behavior unchanged if this flag is not set (and it isn't by default).
2019-03-11 16:06:41 -07:00
David Corbett
e723c04de1
Update to Unicode 12.0.0
2019-03-07 10:15:31 -08:00
Adrian Wong
2f125b0fa7
[indic] Remove superfluous ZWNJ check in final reorder of pre-base matras
2019-03-05 16:41:49 -08:00
Stephan Bergmann
d936ad4582
Fix hb_atomic_* variants based on C++11 atomics
...
I stumbled over this when trying to upgrade the version of HarfBuzz used by
LibreOffice to 3.2.1 (see <https://gerrit.libreoffice.org/plugins/gitiles/core/
+/b7ddc514bff9bdf682abae537f990aa01dc2c0fb%5E!/> "Upgrade to latest
HarfBuzz 2.3.1"), where building with MSVC 2017 failed like
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic<int> *'
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type
(see <https://ci.libreoffice.org/job/gerrit_windows/29916/ >).
I added all the necessary "const" to make building of HarfBuzz 2.3.1 with
MSVC 2017 succeed for me. There may be more missing at least conceptually.
2019-03-05 12:11:32 -08:00
Martin Hosken
731b13e4e9
Fix offset drift in graphite integration
2019-03-03 22:10:46 -08:00
Garret Rieger
4f37ab63de
Make hb_subset_input_glyph_set () actually do something.
2019-03-01 10:49:46 -08:00
Ebrahim Byagowi
45149eb34f
[dwrite] hb_directwrite_face_create, a new API
...
It makes a hb_face_t from IDWriteFontFace, useful when using
DirectWrite facilities for font selection, loading and rendering
but using harfbuzz for shaping.
2019-02-26 15:42:38 -08:00
David Corbett
45adc18526
Fix or document unsupported font-feature-settings
2019-02-25 17:48:16 -05:00
Michiharu Ariza
93739242e1
minor edit
2019-02-20 13:23:12 -08:00
Michiharu Ariza
eebc21c8de
fix crash in hb_map_t::clear()
...
in case called immediately after init()
2019-02-20 12:43:18 -08:00
Evgeniy Reizner
d29c8424c8
Typo ( #1588 )
...
Fixed a small typo.
[skip ci]
2019-02-19 20:05:00 +03:30
Khaled Hosny
6bd4c082e4
[doc] Document hb_feature_from_string() syntax
...
Copied and edited from the util option documentation. The docbook table
syntax is too verbose, but that is the best I can come up with.
2019-02-18 17:00:44 -08:00
Behdad Esfahbod
11456b2d9c
WHitespace
2019-02-15 16:58:43 -08:00
Behdad Esfahbod
77060bcda2
[iter] Add hb_all, hb_any, hb_none
2019-02-15 16:55:08 -08:00
Behdad Esfahbod
72dd5e34e0
[iter] Make hb_iter() into function-object
2019-02-15 16:15:50 -08:00
Behdad Esfahbod
98be7bd77a
[iter] Make hb_map into function-object
2019-02-15 16:09:29 -08:00
Behdad Esfahbod
c1e5ba81fe
Merge remote-tracking branch 'origin/master' into iter
2019-02-15 16:06:03 -08:00
Behdad Esfahbod
b8b3b3e38b
[iter] Add hb_enumerate() and use it
2019-02-15 16:05:36 -08:00
Behdad Esfahbod
3da79dd5b9
Merge pull request #1557 from harfbuzz/cff-more-arrayof-fixes
...
CFF more arrayof fixes
2019-02-15 15:54:51 -08:00
Michiharu Ariza
d8a68728a0
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-15 14:48:10 -08:00
Michiharu Ariza
90c8bbf987
Merge branch 'master' into cff-retain-gids
2019-02-15 14:47:38 -08:00
Martin
5c2bb1de8d
Support xlclang++ on AIX. ( #1584 )
2019-02-15 21:53:46 +03:30
Behdad Esfahbod
1558a43342
[test] Minor
2019-02-14 20:46:13 -08:00
Behdad Esfahbod
fa373584de
[algs] Test pair more
2019-02-14 20:15:07 -08:00
Behdad Esfahbod
0d7af5fb02
[algs] Use universal references for hb_pair()
...
Such that it carries lvalues inside.
2019-02-14 19:37:57 -08:00
Behdad Esfahbod
5b99c92d4c
[iter] Use more
2019-02-14 17:10:04 -08:00
Behdad Esfahbod
72c1b59588
[iter] Use in more places
2019-02-14 15:43:20 -08:00
Behdad Esfahbod
40cce41eae
[iter] Use in a couple more intersects() calls
2019-02-14 15:14:37 -08:00
Behdad Esfahbod
bafdf1829d
[iter] Use in a couple more closure() calls
2019-02-14 15:13:16 -08:00
Behdad Esfahbod
fa35d3fd81
[iter] Add hb_drain
2019-02-14 14:04:05 -08:00
Behdad Esfahbod
f4cfd6b6ad
[iter] A couple more hb_apply() + lambda uses
2019-02-14 13:45:52 -08:00
Behdad Esfahbod
7514a49f21
[iter] Use hb_apply() with lambda functions in a few places
2019-02-14 13:16:33 -08:00
Behdad Esfahbod
0670e1a6f5
[iter] Remove excess use of universal references
...
Every time I have to study these to understand why a change is right..
2019-02-14 11:53:40 -08:00
Behdad Esfahbod
773d75637c
[iter] Add hb_apply()
2019-02-14 11:40:22 -08:00
Behdad Esfahbod
00db94095d
[iter] Make hb_filter() a function-object
2019-02-14 11:10:13 -08:00
Behdad Esfahbod
aa4c321262
[iter] Make hb_zip() a function-object
2019-02-14 11:07:12 -08:00
Behdad Esfahbod
f8fcfb263e
[iter] Accept pointers to hb_sink()
2019-02-14 11:03:29 -08:00
Behdad Esfahbod
b530573ad9
[iter] Make hb_sink function-object
2019-02-14 11:00:10 -08:00
Behdad Esfahbod
bb139cb8d0
[iter] Back to dagger formatting for pipelines
2019-02-14 10:52:02 -08:00
Behdad Esfahbod
5fa52e62b1
[iter] Accept iterator, not iterable, in hb_sink()()
2019-02-14 10:51:02 -08:00
Behdad Esfahbod
0f292ea85f
[iter] Accept iterator, not iterable, in hb_filter()()
2019-02-14 10:49:31 -08:00
Behdad Esfahbod
345bfbb207
[iter] Accept iterator, not iterable, in hb_map()()
2019-02-14 10:48:20 -08:00
Behdad Esfahbod
16cc313dcd
[iter] Use hb_sink()
2019-02-14 10:40:05 -08:00
Behdad Esfahbod
b702a0cbf8
[iter] Add hb_sink()
2019-02-14 10:39:58 -08:00
Michiharu Ariza
1cb1d5d7fb
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-14 10:09:19 -08:00
Michiharu Ariza
6f1dfd082c
Merge branch 'master' into cff-retain-gids
2019-02-14 10:08:16 -08:00
Behdad Esfahbod
7d2376de33
Merge branch 'master' into iter
2019-02-13 22:13:37 -08:00
Ebrahim Byagowi
890d0ee77f
Minor, use a meaningful naming in template parameter ( #1582 )
2019-02-14 00:27:01 +03:30
Michiharu Ariza
8a568a8858
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-13 11:25:00 -08:00
Michiharu Ariza
b1dbc77fa6
Merge branch 'master' into cff-retain-gids
2019-02-13 11:24:38 -08:00
Ebrahim Byagowi
1e1d0e63df
Fix djgpp complains by tweaking templates ( #1579 )
...
For some reasons djgpp doesn't understand "unsigned int" can be same
with one of uint*_t anyway so lets do that for it explicitly.
Just to note, our CI's djgpp is based GCC 7.2.0 and isn't old.
2019-02-13 12:58:01 +03:30
Michiharu Ariza
bc33c617b8
Merge branch 'master' into cff-retain-gids
2019-02-12 15:10:50 -08:00
Michiharu Ariza
c6af846178
tweaked --desubroutinize to remove hintmask only subrs
2019-02-12 15:10:43 -08:00
Michiharu Ariza
c83412e4ce
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-11 14:16:25 -08:00
Ken
fdfa3d29b7
hb-coretext.cc: remove TARGET_OS_MAC from test ( #1578 )
...
it is always true when building on APPLE systems
and this file only builds on APPLE systems
2019-02-11 11:16:05 +03:30
Michiharu Ariza
e2856c2d85
retain FDSelect & FDArray with --retain-gids
...
so in sync with fonttools behavior
2019-02-07 15:32:32 -08:00
Michiharu Ariza
1239b6b2b4
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-07 10:29:40 -08:00
Michiharu Ariza
a5fa76977b
Merge branch 'master' into cff-retain-gids
2019-02-07 10:28:13 -08:00
Michiharu Ariza
214d0b024b
minor change
2019-02-07 10:27:43 -08:00
Ken Cunningham
7859decdd0
hb-coretext.cc: clean up macosx test
...
TARGET_OS_OSX was introduced only in late OS versions
so always returns as "0" on older systems.
if !TARGET_OS_IPHONE can work, as it returns as !0 on older
systems where TARGET_OS_IPHONE is not defined, but is not
specific
if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
is both specific and accurate on all systems.
2019-02-05 20:26:49 -08:00
Michiharu Ariza
30b781f20a
Merge branch 'master' into cff-retain-gids
2019-02-01 14:50:34 -08:00
Michiharu Ariza
c12862657f
added desubroutinize & retain-gids full test cases with CFF fonts
...
and CFF retain-gids fixes
2019-02-01 14:50:01 -08:00
Michiharu Ariza
f2908b4d8f
Implement subset --regain-gids option with CFF1/2
...
along with api tests & expected results
2019-01-31 14:16:37 -08:00
Behdad Esfahbod
1e06282105
Adjust hb_is_signed<>
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1535
2019-01-31 13:57:17 -08:00
Behdad Esfahbod
21ea1c9152
Remove stale comment
2019-01-31 13:57:17 -08:00
Michiharu Ariza
9f80eb0177
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-31 12:54:36 -08:00
Behdad Esfahbod
2d940946d5
[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?!
2019-01-30 16:03:16 -08:00
Behdad Esfahbod
cbe2118c58
Merge branch 'master' into iter
2019-01-30 15:07:09 -08:00
Behdad Esfahbod
7c292c0853
[iter] Warning fix
...
Not sure why I don't get it, but this warning:
warning: base class ‘struct hb_iter_fallback_mixin_t<hb_array_t<const OT::UVSMapping>, const OT::UVSMapping&>’ should be explicitly initialized in the copy constructor [-Wextra]
2019-01-30 14:54:23 -08:00
Behdad Esfahbod
d983c529b6
Merge pull request #1564 from googlefonts/retain_gids
...
[subset] Add --retain-gids option to the subsetter.
2019-01-30 17:17:59 -05:00
Behdad Esfahbod
55d1d7c8bc
2.3.1
2019-01-30 13:54:15 -08:00
Behdad Esfahbod
e799004e9f
[iter] Whitespace
2019-01-29 17:15:12 -08:00
Behdad Esfahbod
849a0f1758
[iter] Add hb_iter_with_fallback_t instead
2019-01-29 17:10:19 -08:00
Behdad Esfahbod
4d40ed9d1a
[iter] Add hb_iter_with_mixin_t<>
2019-01-29 13:55:23 -08:00
Behdad Esfahbod
6521d5b201
[iter] Export operator << / >>
2019-01-29 13:44:39 -08:00
Behdad Esfahbod
84a25d79c6
[iter] Rename
2019-01-29 13:39:19 -08:00
Garret Rieger
198859bb37
[subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
2019-01-29 13:19:21 -08:00
Garret Rieger
05e99c86ba
[subset] A few small fixes for the new subset plan api.
2019-01-29 13:19:21 -08:00
Garret Rieger
bdbe047d6c
[subset] Update hb-subset-plan.cc to match hb-subset-plan.hh.
2019-01-29 13:19:21 -08:00
Garret Rieger
74c44ffeba
[subset] Update hb-subset-glyf.cc to use new hb-subset-plan API.
2019-01-29 13:19:21 -08:00
Garret Rieger
4842294b86
[subset] Update gsub to use glyphset() method of subset plan.
2019-01-29 13:19:21 -08:00
Garret Rieger
853b1f1aa5
[subset] Correct maxp num glyph's to use new subset plan method.
2019-01-29 13:19:21 -08:00
Garret Rieger
846e05a298
[subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
2019-01-29 13:19:21 -08:00
Garret Rieger
03e88eab5c
Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation.
2019-01-29 13:19:21 -08:00
Garret Rieger
925be29223
Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
2019-01-29 13:19:21 -08:00
Garret Rieger
4af3be6ef8
Remove glyph array from subset plan, make num_glyphs and glyphset private.
2019-01-29 13:19:21 -08:00
Garret Rieger
23f364429d
[subset] Fix hdmx subsetting when retain gids is enabled.
2019-01-29 13:19:21 -08:00
Garret Rieger
2da1654aef
[subset] Compute num_glyphs during subset plan construction.
...
Update maxp to use the correct num glyphs.
2019-01-29 13:19:21 -08:00
Garret Rieger
96b038f375
[subset] fix failure to init instruction ranges values for an invalid glyph.
2019-01-29 13:19:21 -08:00
Garret Rieger
4b1ac3a2fa
[subset] Do some refactoring in hb-subset-glyf.cc.
...
- Extract code out into helper methods in several places.
- Bundle loca address, size and is short into a struct.
2019-01-29 13:19:21 -08:00
Garret Rieger
b7f971884e
Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
2019-01-29 13:19:21 -08:00
Michiharu Ariza
b379900755
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-29 12:19:57 -08:00
Behdad Esfahbod
e75b22039f
Move hb_addressof() to hb-meta.hh
2019-01-28 21:26:23 -05:00
Behdad Esfahbod
71157a4520
[meta] Remove _ft struct names
...
Using decltype() instead.
2019-01-28 21:20:12 -05:00
Behdad Esfahbod
9103bd056f
[pair] Use decltype
2019-01-28 21:16:51 -05:00
Behdad Esfahbod
a30e13469e
[iter] Add operator << to set / vector
2019-01-28 16:39:01 -05:00
Behdad Esfahbod
d438e61042
[iter] Fix operator() impls
2019-01-28 16:34:04 -05:00
Behdad Esfahbod
57795bc8dd
[iter] Add operator>> and operator<<
2019-01-28 16:23:12 -05:00
Behdad Esfahbod
8bd96be994
[iter] Use auto c = C.iter() internally
2019-01-28 16:17:36 -05:00
Behdad Esfahbod
073fa4ac5a
Merge branch 'master' into iter
2019-01-28 14:35:41 -05:00
Behdad Esfahbod
9a1df82e3f
[uniscribe] Whitelist function type cast
2019-01-28 14:15:18 -05:00
Behdad Esfahbod
6e1c3eaf70
Fix sign comparison error
2019-01-28 14:12:41 -05:00
Behdad Esfahbod
9db7a7da63
Fix warning
...
c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2019-01-28 14:09:59 -05:00
Behdad Esfahbod
51b584880e
[pragma] Silence MSVC unknown-pragma warning
2019-01-28 14:09:45 -05:00
Behdad Esfahbod
d592bd16cd
Try fixing MSVC build
2019-01-28 13:41:40 -05:00
Behdad Esfahbod
0363ce650b
[iter] Accept C arrays in hb_iter()
2019-01-27 01:06:32 +01:00
Behdad Esfahbod
b62e7f9223
[test] Test unary operator+
...
"Test" as in compiles..
2019-01-27 00:51:57 +01:00
Behdad Esfahbod
778c96b8d7
[iter] Fix hb_iter()
2019-01-27 00:50:54 +01:00
Behdad Esfahbod
2f5b1a9104
[iter] Add unary operator+ that returns a copy
2019-01-27 00:49:37 +01:00
Behdad Esfahbod
fbab07f9b3
[iter] Add hb_bool() and make hb_filter default to it for predicate
2019-01-27 00:44:45 +01:00
Behdad Esfahbod
313d63e240
[meta] Back to using _ft suffix for function-object types
...
Seprate namespace, cleaner, more clear.
2019-01-26 22:58:26 +01:00
Behdad Esfahbod
2aff6d9625
[iter] Test that default-constructed iterators are empty
2019-01-26 22:54:25 +01:00
Behdad Esfahbod
f35e7eabf1
pragma GCC diagnostic error "-Winjected-class-name"
...
See 6b6783e158
2019-01-26 22:50:00 +01:00
Behdad Esfahbod
509353357c
[iter] Use hb_declval() instead of Null() to get instance
...
I had used Null to make one of the bots happy before. Not going
to bend to such demands anymore..
2019-01-26 22:47:35 +01:00
Behdad Esfahbod
6b6783e158
[iter/meta] Fix build on newer clang
...
The mystery failure had to do with SFINAE failure because the template
function involved was accessing ::iter_t of a type that was also named iter_t.
In this context, apparently:
warning: ISO C++ specifies that qualified reference to 'iter_t' is a
constructor name rather than a type in this context, despite preceding 'typename' keyword
[-Winjected-class-name]
We use a new macro, also called hb_iter_t(), to get iterator type of
a type. This uses declval/hb_decltype, and has the added benefit
that it returns correct type for const vs non-const objects, if they
have different iterators.
2019-01-26 22:44:09 +01:00
Behdad Esfahbod
5adb113baf
[meta] Mark function-objects as const
2019-01-26 22:15:59 +01:00
Behdad Esfahbod
ac90f17c55
Merge branch 'master' into iter
2019-01-26 14:05:39 +01:00
Behdad Esfahbod
60022ecced
Fix -Wcast-function-type warnings in util/ with gcc 4.8
2019-01-26 14:04:51 +01:00
Behdad Esfahbod
f398097529
More static constexpr
2019-01-25 16:08:25 +01:00
Behdad Esfahbod
090fe56dc6
Merge branch 'master' into iter
2019-01-25 16:06:52 +01:00
Michiharu Ariza
c685644386
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-24 13:19:18 -08:00
Behdad Esfahbod
e970de48bc
[AAT] Minor sign
2019-01-24 18:16:17 +01:00
Behdad Esfahbod
a371a28cda
[AAT] Use a ring buffer for ligature stack
...
I think Apple does very similarly, but probably with a stack size of 16.
We do it with a stack size that is currently set to 64.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
2019-01-24 18:12:25 +01:00
Behdad Esfahbod
7886b1578f
Whitespace
2019-01-24 18:06:17 +01:00
Behdad Esfahbod
b976940243
[AAT] Handle transition errors during machine operation
...
Before we used to give up. Now, just ignore error and continue processing.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
2019-01-24 18:01:07 +01:00
Michiharu Ariza
0bd0a3311c
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-24 08:53:28 -08:00
Behdad Esfahbod
e234bb6a42
[AAT] Ignore machine errors and continue
2019-01-24 17:23:11 +01:00
Behdad Esfahbod
1ec90514f6
[AAT] Minor
2019-01-24 17:21:41 +01:00
Behdad Esfahbod
299eca0c3b
[AAT] Handle out-of-bounds classes
2019-01-24 17:17:00 +01:00
Behdad Esfahbod
c4623db4a3
[AAT] Minor
2019-01-24 17:10:12 +01:00
Behdad Esfahbod
c4e36f97b6
[AAT] Minor
2019-01-24 17:06:16 +01:00
Behdad Esfahbod
f60282c5bf
More pragma control
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=924848
2019-01-24 16:29:09 +01:00
Behdad Esfahbod
fd0889f903
Comment
2019-01-24 16:12:52 +01:00
Behdad Esfahbod
9f31417733
Form cluster for Emoji sub-region tag sequences
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1556
2019-01-24 16:08:33 +01:00
Behdad Esfahbod
3ecda71041
Adjust mark offsets when zeroing from fallback mark positioning code
...
Adjust tests.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
2019-01-24 12:28:24 +01:00
Michiharu Ariza
12cd3171ba
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-23 14:05:42 -08:00
Michiharu Ariza
261a742181
more rewriting with ArrayOf<>
...
CFF1 Encoding0, Encoding1, CFF1SuppEncData
2019-01-23 14:04:29 -08:00
Behdad Esfahbod
36fb2b4da9
[AAT] In InsertionChain, set mark to previous-position if inserting
...
Fixes MORX-31
2019-01-23 20:53:57 +01:00
Behdad Esfahbod
baf4d6a68a
[AAT] Remove mark_set from InsertionChain
2019-01-23 20:36:07 +01:00
Behdad Esfahbod
0b2fa342de
More of previous
2019-01-22 16:36:00 +01:00
Behdad Esfahbod
a5e5dd8b42
Fix sign-compare error resulted from promoting unsigned integers to signed larger ints
...
Clang and gcc know not to warn in these cases, but not nonmainstream compilers
2019-01-22 16:30:07 +01:00
Behdad Esfahbod
32379bbf10
Cast HB_UNTAG results to uint8_t
2019-01-22 12:55:29 +01:00
Behdad Esfahbod
83d4aa5ca9
More -Wcast-error fix
2019-01-22 12:52:23 +01:00
Behdad Esfahbod
447323b85a
Better fix for -Wcast-align errors
2019-01-22 12:50:12 +01:00
Behdad Esfahbod
81ec543d80
More -Wcast-error fixes
2019-01-22 12:43:12 +01:00
Behdad Esfahbod
9077272549
pragma GCC diagnostic error "-Wsign-compare"
2019-01-22 12:40:18 +01:00
Behdad Esfahbod
8d05bf7dc0
Fix cast-align error
...
If compiler doesn't inline StructAtOffset, this was an error since we
only disable cast-align at call-site. So, move the cast out.
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:146:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:147:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-01-22 12:34:05 +01:00
Behdad Esfahbod
70a52d6bd8
Convert all other enum class consts to static constexpr
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
5d4b0377b9
Convert unsigned enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
ef00654962
Convert tag enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
39e1b6d03f
Convert boolean enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
271cb7c1c0
Make some enum constants unsigned
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
3d9a6e6266
Whitespace
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
c81f02fd06
pragma GCC diagnostic error "-Wvla"
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
380c3cffb9
Use enum for class constant
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
6d042a18e7
[CFF] Use enum for tableTag
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
c1cbbb9459
Use static constexpr for large class constants
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
21c0713a1c
Whitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
934d3fa2a7
Use more iter pipelines
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
420d8ac350
[algs] Add hb_iter()
...
Makes it nicer in pipelines.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
54ec48ea20
Use iter pipelines more
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
83cecd80d9
[iter] Default projection to identity
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a699c6b17c
[algs] Add hb_identity
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
463cfb426f
Fix unused-variable warnings
...
inline variables are not C++11, so mark them unused...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f4cbb1ee0c
WIP
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
471e96e55d
[iter] Use forwarding references
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
528ea66f24
[algs] Fix hb_first() / hb_second()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
343f5a4bfc
[iter] Misc fixes to get piping almost work
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7cedf7f64c
Change hb_first() and hb_second() to function objects
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f35568d603
[iter] Add hb_filter()
...
Untested.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
1733e4702c
[iter] Add hb_map()
...
Untested.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f7fcc47641
[iter] Make hb_zip() take const references
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ede1a71b31
Minor rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
93551669c5
Remove unused Coverage::iter_t::get_coverage()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
af2067e87b
Use hb_zip() moooore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
0d1fdf939d
Use hb_zip() some mooore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
af6c190235
Use hb_zip() some moore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
83ad0b6d0f
Use hb_zip() some more
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f0dd0656b8
Use hb_zip() some
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
200cdb721b
[iter] Rename hb_zip_t to hb_zip_iter_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3290c181c1
[algs] Whitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
014c50292b
[iter] Move code
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6e3ad650d1
Rename hb-dsalgs to hb-algs
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f27607580e
[algs] Add hb_first() and hb_second()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a7de144df3
Implement uniform map interface
...
Coverage, ClassDef, hb_set_t, and hb_map_t implement.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7987095e64
[meta] Remove hb_enable_if_t
...
It was only used for C++<11 which does not allow default parameters
in function templates. Looks like we cannot support <11 anyway, so,
start cleaning up.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
15a6928436
[iter] Implement operator-> unconditionally
...
The right condition to check for would have been "is_struct", which
we don't have.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8f52a827e7
Allow rvalues in hb_addressof()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a4ea0d3680
[iter] Change from const_iter_t/iter_t to iter_t/writer_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7798e4fcc3
[iter] Change Coverage iterator to only return glyph-id
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
84e5d00229
[iter] Add hb_zip()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
636786ecaf
[iter] Rename __item_type__ to __item_t__
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6caf76f4a8
Tighten Coverage iteration
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ff3a7ce1e7
[subset] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
42bf80e578
[iter] More semicolon
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f78f837ef1
[iter] Use aliasing using for types
...
Fix ambiguity of hb_sorted_array_t::item_t with gcc. No idea if that's a gcc bug
or what spec requires, but using aliasing using seems to fix it. It probably breaks
our non-C++11 bots, in which case I have to condition the change. Testing.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3fc03e42ce
[iter] Use static_assert with hb_is_random_access_iterator()
...
Both, checks constexpr'ness, and fixes build with cra**y implementations
of assert() macro:
test-iter.cc:108:11: error: too many arguments provided to function-like macro invocation
assert (hb_is_random_access_iterator (array_iter_t<int>));
^
./hb-iter.hh:186:42: note: expanded from macro 'hb_is_random_access_iterator'
hb_is_random_access_iterator_of (Iter, typename Iter::item_t)
^
/usr/include/x86_64-linux-gnu/sys/cdefs.h:89:9: note: macro '__STRING' defined here
\#define __STRING(x) #x
^
test-iter.cc:108:3: error: use of undeclared identifier '__STRING'
assert (hb_is_random_access_iterator (array_iter_t<int>));
^
/usr/include/assert.h:91:21: note: expanded from macro 'assert'
: __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION))
^
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6af9c5f18e
[iter] Remove stray semicolons
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
74ca7b580c
[OT] Implement operator[] for Coverage and ClassDef
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6c548b6657
[iter] Add TODO
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
362d4e7cc3
[iter] Implement for OT::ArrayOf / OT::SortedArrayOf
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2f837a365c
[SortedArrayOf] Fix sub_array() return type
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
54c30e949e
[iter] Constrain hb_fill() and hb_copy()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
dc0a98cbe7
[iter] Add TODO
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2658e40ffb
[iter] Add hb_is_random_access_iterator()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
445364d80a
[iter] Rename hb_is_[sorted_]iterator() -> hb_is_[sorted_]iterator_of()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a6c013b1bf
[meta] Add hb_declval() macro
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
adc5910a63
[iter] Syntax
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ca6adcd1ad
[iter] Test hb_is_iterable / hb_is_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8237809f06
[serialize] Make SortedArrayOf:;serialize() take sorted-iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
47333c8a30
[iter] Fix operator->
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
177a8af380
[array] SFINAE fun
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8414f16787
[meta] Rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8e0a58e1b3
[array] Remove construction that was removing constness
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
85969e357a
[iter] Fix test
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
da49961836
[iter] Remove comment
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
815cde9fa3
[iter] Use is_sorted_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ed4336680d
[iter] Handhold hb_is_iterator() type deduction
...
by partial-instantiating on Iter.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cb5011d364
Revert "[iter] Add hb_iter_of_t<>"
...
This reverts commit d6cbe96e2fc7bc8f1c10e631b52b1ef31ff9a6f5.
Isn't useful, as duplicate inheritance of same type results in ambiguity
errors...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c132cda9d9
[iter] Fix warnings
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c9d8a07e30
[iter] Add hb_iter_of_t<>
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
b5d6fe1a45
[iter] Remove hb_sorted_iter_t
...
Not enforcing it using type hierarchy.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
255085bd59
[iter] Const correctness
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
415f3f4320
Add operator= to IntType, commented out
...
https://github.com/harfbuzz/harfbuzz/pull/1510
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
183be8f452
[iter] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6cd96ba1ac
[iter] Make is_random_access_iterator a constant
...
We cannot rely on constexpr functions...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a685bfe8fc
Separate GlyphID from HBUINT16
...
For stricter enforcement.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8ac64d0090
[iter] Fix sorted_iter iter class
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
93615b9598
[iter/meta] Add hb_is_sorted_iterator()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
92f25db1e8
[iter] Remove stale comment
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
40c24fd4a6
[iter] Port Coverage towards iter_t instead of array_t specifics
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d552b6818c
[meta] Move typename around
...
We'll see if bots like.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f64ea8fc65
[meta] Move code around
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
aa2ab4f061
[iter] WHitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
851fbb23ea
[iter] Port Coverage::serialize to hb_is_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
06a44e2e53
[iter/meta] Match hb_is_iterator<> using SFINAE
...
By specifying Item type, which is desirable.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
bcb913efb4
Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
859a880b08
[iter] Add back operator +
...
Too ugly to remove..
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
076faf7c18
[iter] Disable operator +
...
To see if it makes bots happy... This is frustrating.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a46874f1ab
[iter] Revert back uses of C++11 auto type deduction
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
0828db8444
[iter] Rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
037f735efd
[iter] Remove friend operator +, hoping to fix some bots
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cb27918d0a
Use Null() instead of declval(), hoping to fix some bots
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3d22900f62
[meta] Don't use template default arguments for functions
...
That's a C++11 extension apparently...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
b89d20dd9f
[meta] Fix unused-function-template warning
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
df138da2e6
[iter/meta] Implement is_iterator
...
Removes use of auto type deduction again, which was not supported on many bots.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8570da1d74
[meta] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
442f4a5891
[meta] Move more code here
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8c6cbbdfa3
[iter/meta] Add hb_is_iterable
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
576d5e2420
Don't use delegating constructors
...
Not all C++11 features are created equal when it comes to support...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e32bf39766
[meta] Add enable_if
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e76a3cae0f
Add hb-meta.hh for meta-programming
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
5ec11ce13a
[iter] Clarify readonly vs lvalue iterators
...
lvalue iterators must declare __item_type__ as a reference.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2cbf5bf3a9
[iter] Test OT::Coverage iter
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
fd75d29f0f
[iter] Streamline vector iterators
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
570473a345
[iter] Make hb_sorted_array_t work as iter
...
Ugly, but does the job.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d6024794fb
Change hb_void_t implementation
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cde31988c2
[iter] Mark Coverage iterator sorted
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
49161d411f
[subset] Take iterator in ArrayOf serialize
...
Still not satisfied with how I can enforce iterators only, but
seems to work for now.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e16884248f
[iter] Port Coverage iterator to hb_iter_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c68bca0f95
Add hb_pair_t<> and hb_pair()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8303a9b011
[Coverage] Ensure increasing coverage in iteration
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
50cd26d394
[Coverage] Mark iterator methods const
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
9df1a6eba7
[iter] Use operator bool in a few places
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7788ac14a4
[iter] Remove redundant methods
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3dea9affda
[iter] Test default-constructability
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
743ff09368
[iter] Implement friend opeator + (int, iter)
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6dc4a1c9b1
[iter] Remove const_iter
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f2b56af3ef
[iter] Remove hack for older compilers
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2ea79e0340
[iter] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
fb053b6333
[iter] Rename random_access() to constexpr is_random_access()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2790aad28c
[iter] Add operator ->
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d3976b7e63
[iter] Make them work, mostly
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
959bb58bdd
[vector] Add iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
dd7c628ed1
Use enum for class constant
2019-01-20 19:51:08 -05:00
Behdad Esfahbod
cf7edf52c3
[CFF] Use enum for tableTag
2019-01-20 19:49:59 -05:00
Behdad Esfahbod
bd1318b8cc
Use static constexpr for large class constants
2019-01-20 19:47:52 -05:00
Behdad Esfahbod
043b610fa6
Fix sign compare warnings
...
../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: comparison of integers of different signs: 'const hb_codepoint_t' (aka 'const unsigned int') and 'hb_map_t::(anonymous enum at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' [-Wsign-compare]
bool is_unused () const { return key == INVALID; }
2019-01-19 09:21:33 -05:00
Behdad Esfahbod
ce317d0320
Fix warning
...
warning: '_WIN64' is not defined, evaluates to 0 [-Wundef]
2019-01-19 09:21:33 -05:00
Ebrahim Byagowi
0c2bd1b160
[dwrite] Fix delete-non-virtual-dtor warning ( #1550 )
2019-01-19 16:30:07 +03:30
Behdad Esfahbod
89bcfb204c
Remove TRACE_COLLECT_GLYPHS
2019-01-18 14:59:18 -05:00
Behdad Esfahbod
f13b6786f0
[pragma] Only add if GCC or clang
2019-01-18 14:53:54 -05:00
Behdad Esfahbod
c2ea7a9da4
[directwrite] More fix
2019-01-18 14:20:45 -05:00
Ebrahim Byagowi
9714d3ec5c
[dwrite] Try to fix delete-non-virtual-dtor warnings
...
Fixes #1548 hopefully
2019-01-18 21:55:21 +03:30
Behdad Esfahbod
0772c06f96
Remove tracing from closure
2019-01-18 12:53:47 -05:00
Behdad Esfahbod
d9f6be3a61
Fix -Wundef errors with __GNUC__
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1549
2019-01-18 12:53:47 -05:00
Michiharu Ariza
28917e58f9
init interp_env_t::hintmask_size
...
fixes issue #1547
2019-01-18 09:43:51 -08:00
Behdad Esfahbod
9b4e51b2e4
[pragma] Enable error -Wdelete-non-virtual-dtor
...
Currently fails directwrite backend.
2019-01-18 12:23:02 -05:00
Behdad Esfahbod
e65272281c
[directwrite] Fix error
...
hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)':
hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be initialized after [-Werror=reorder]
const wchar_t* mText;
^~~~~
hb-directwrite.cc:488:12: error: 'uint32_t TextAnalysis::mTextLength' [-Werror=reorder]
uint32_t mTextLength;
^~~~~~~~~~~
hb-directwrite.cc:282:3: error: when initialized here [-Werror=reorder]
TextAnalysis (const wchar_t* text, uint32_t textLength,
^~~~~~~~~~~~
hb-directwrite.cc: In function 'hb_bool_t _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, float)':
2019-01-18 12:22:07 -05:00
Behdad Esfahbod
b900f78088
[pragma] More cast-align whitelist
2019-01-18 10:08:23 -05:00
Behdad Esfahbod
0d8b931bbe
[pragma] Allow cast-align in hb-font.cc
...
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:144:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:145:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = int]':
2019-01-18 10:03:43 -05:00
Behdad Esfahbod
a25174a56b
[pragma] GCC diagnostic error "-Wreorder"
2019-01-18 09:59:36 -05:00
Behdad Esfahbod
4660090569
[pragma] GCC diagnostic warning "-Wmaybe-uninitialized"
2019-01-18 09:53:16 -05:00
Behdad Esfahbod
7a634d7d5b
[pragma] Massage more
2019-01-18 09:49:14 -05:00
Behdad Esfahbod
16e5ba85b1
[pragma] More
2019-01-18 09:46:17 -05:00
Behdad Esfahbod
2bd530d598
[pragma] Reorg again
...
https://github.com/harfbuzz/harfbuzz/issues/1546
2019-01-18 09:28:22 -05:00
Behdad Esfahbod
c04272fac8
[pragma] GCC diagnostic ignored "-Wunknown-warning-option"
...
Try at fixing https://github.com/harfbuzz/harfbuzz/issues/1546
2019-01-18 08:49:45 -05:00
Behdad Esfahbod
4d3c8f9685
[uniscribe] More warnings
2019-01-17 19:58:54 -05:00
Behdad Esfahbod
6a5d2b21d8
[uniscribe] Fix warnings
2019-01-17 19:57:17 -05:00
Behdad Esfahbod
5b13e458c3
Fix build
2019-01-17 19:52:32 -05:00
Behdad Esfahbod
a77bd6bb89
[pragma] GCC diagnostic ignored "-Wclass-memaccess"
2019-01-17 19:33:41 -05:00
Behdad Esfahbod
436c7b294a
[pragma] ignored -Wunsafe-loop-optimizations // TODO fix
2019-01-17 19:03:33 -05:00
Behdad Esfahbod
e3b3181e9d
[pragma] error -Wclass-memaccess
2019-01-17 19:02:06 -05:00
Behdad Esfahbod
1a6b97a491
[pragma] More
2019-01-17 18:55:03 -05:00
Behdad Esfahbod
06e8091661
[pragma] More
2019-01-17 18:47:32 -05:00
Behdad Esfahbod
1077e40bf1
[pragma] Flesh out more
2019-01-17 18:36:10 -05:00
Behdad Esfahbod
7e6bd510fc
Use NNOffsetTo<> in rest of places
2019-01-17 18:24:18 -05:00
Behdad Esfahbod
b1152d5e66
Use NNOffsetTo<>
2019-01-17 18:17:04 -05:00
Behdad Esfahbod
205d72a198
Add NNOffsetTo<>
2019-01-17 18:10:38 -05:00
Behdad Esfahbod
c99d13d860
[AAT] Comment
2019-01-17 17:56:27 -05:00
Behdad Esfahbod
f39b5603ff
Comment
2019-01-17 17:50:01 -05:00
Behdad Esfahbod
347ad454b8
[AAT] Remove unused code
2019-01-17 17:47:29 -05:00
Behdad Esfahbod
b344d4385a
[AAT] Allow null in ankr lookupTable offset
2019-01-17 17:44:39 -05:00
Behdad Esfahbod
14a560a245
[pragma GCC] Ignore -Wtype-limits
2019-01-17 17:42:44 -05:00
Behdad Esfahbod
3f2daae630
More GCC pragmas
2019-01-17 15:27:31 -05:00
Behdad Esfahbod
d6c5473e1f
Rename macro
2019-01-17 15:22:46 -05:00
Behdad Esfahbod
a9946b7cfe
Add more GCC warning pragmas
2019-01-17 15:22:28 -05:00
Behdad Esfahbod
868b0c0c2e
Move -Wcast-align to hb.hh
2019-01-17 15:18:18 -05:00
Behdad Esfahbod
8874eef8ff
Add pragram GCC diagnostic ignored "-Wunused-macros"
2019-01-17 15:04:44 -05:00
Behdad Esfahbod
cc8e9a436f
[AAT] Fully sanitize ankr table at sanitize time
...
Third try to fix access. Followup 6879efc2c1
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
2019-01-17 14:55:05 -05:00
Behdad Esfahbod
6879efc2c1
[AAT] Fix anchor bound checking, again
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
2019-01-17 14:08:02 -05:00
Behdad Esfahbod
a262eb3d0b
[aat] Minor
2019-01-17 14:06:32 -05:00
Behdad Esfahbod
c986ca15a6
Improve overflow avoidance
...
Better fix for 480406cd3e
This way we behave the same on 32bit and 64bit archs.
2019-01-15 13:58:19 -05:00
Tor Arne Vestbø
f401f85a5a
Remove assumption about Core Text working in 96 DPI
...
Core Text doesn't actually have a concept of DPI internally, as it
doesn't rasterize anything by itself, it just generates vector paths
that get passed along to Core Graphics.
In practice this means Core Text operates in the classical macOS
logical DPI of 72, with one typographic point corresponding to one
point in the Core Graphics coordinate system, which for a normal
bitmap context then corresponds to one pixel -- or two pixels for
a "retina" context with a 2x scale transform.
Scaling the font point sizes given to HarfBuzz to an assumed DPI
of 96 is problematic with this in mind, as fonts with optical
features such as 'trak' tables for tracking, or color glyphs,
will then base the metrics off of the wrong point size compared
to what the client asked for.
This in turn causes mismatches between the metrics of the shaped
text and the actual rasterization, which doesn't include the 72
to 96 DPI scaling.
If a 96 DPI is needed, such as on the Web, the scaling should be
done outside of HarfBuzz, allowing the client to keep the DPI of
the shaping in sync with the rasterization.
The recommended way to do that is by scaling the font point size,
not by applying a transform to the target Core Graphics context,
to let Core Text choose the right optical features of the target
point size, as described in WWDC 2015 session 804:
https://developer.apple.com/videos/play/wwdc2015/804/
2019-01-15 13:26:35 +01:00
Behdad Esfahbod
0d2727f4fe
fix FDSelect fuzzing bug ( #1539 )
...
Rewrote struct FDSelect3_4.ranges as ArrayOf
Updated FDSelect3_4::sanitize () to call ranges.sanitize ()
nRanges now a function to return a reference to ranges.len
2019-01-14 18:23:17 -08:00
Behdad Esfahbod
9f6172d669
Move _POSIX_SOURCE definition
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1308
2019-01-14 20:45:31 -05:00
Behdad Esfahbod
480406cd3e
Fix assertion on address overflow
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=917031
2019-01-14 15:27:34 -05:00
Behdad Esfahbod
7a6686a589
[AAT] Fix mort ContextualSubtable offset access
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312
2019-01-14 15:09:14 -05:00
Behdad Esfahbod
a3fa7d3336
[AAT] Fix ankr table access
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=918340
2019-01-14 14:37:36 -05:00
Michiharu Ariza
760303d411
deleted a duplicate fontdicts_mod.fini() call ( #1538 )
2019-01-11 15:27:35 -08:00
Michiharu Ariza
7b48641aa8
fix leak in subset_enc_supp_codes ( #1537 )
...
oss-fuzz issue 12310
2019-01-08 15:37:48 -05:00
Ebrahim Byagowi
97f67a3c3d
[ci] Enable more of GCC compile warnings ( #1533 )
2019-01-04 23:10:39 +03:30
cclauss
26c5b54fb0
CircleCI: Test for Python 3 syntax errors and undefined names ( #1522 )
...
Catch missing imports and errors like #1520 and #1521
__E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org ) issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety.
* F821: undefined name `name`
* F822: undefined name `name` in `__all__`
* F823: local variable name referenced before assignment
* E901: SyntaxError or IndentationError
* E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
2018-12-31 07:00:43 +03:30
cclauss
f4da28b1f1
Python 3 fixes to gen-os2-unicode-ranges.py ( #1521 )
...
In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__ because the default is already utf-8. Also __Error()__ is an _undefined name_ and __Exception()__ creates a generic exception.
2018-12-30 15:28:34 +03:30
Behdad Esfahbod
d092fb2719
Ouch! Fix build on C++<11
2018-12-30 01:53:03 -05:00
Behdad Esfahbod
89949ed28d
Fix ubsan with passing nullptr to qsort()
2018-12-30 01:52:19 -05:00
Behdad Esfahbod
357a0a7ad3
Fix build on C++ < 11
2018-12-27 18:29:23 -05:00
Behdad Esfahbod
54c0a17310
[vector] Fix warning
2018-12-27 18:28:07 -05:00
Behdad Esfahbod
1043ddbee8
[aat] Minor
2018-12-27 18:27:11 -05:00
Behdad Esfahbod
71da9ca62f
[vector] Remove use of arrayZ() by using casts
2018-12-27 18:01:06 -05:00
Behdad Esfahbod
fa333e34d6
[vector] Remove static_array
...
Was good idea, but with C++ types with constructor/destructor, was getting in
the way as compiler was destructing those items where it was not desired.
Since C++ does not allow zero-sized arrays, just remove it...
2018-12-27 17:56:22 -05:00
Behdad Esfahbod
ab2258a419
[vector] Use allocated = -1 to signify failure
2018-12-27 17:45:05 -05:00
Michiharu Ariza
09fa536d89
fix lealk with cff2::accelerator_templ_t::topDict ( #1517 )
2018-12-27 11:33:09 -05:00
Behdad Esfahbod
3b81442cd5
[vector] Change pre-alloced count from 8 to 2
...
I'm thinking about dropping it to zero, but that needs slight code changes.
2018-12-24 11:31:04 -05:00
Behdad Esfahbod
d25a2f1496
Fix a few warnings
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
85003b594b
[iter] Fix warning
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
e4355b1ca1
[set] Add iter_t as alias to const_iter_t
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
33f8de6186
[set] Change to const_iter
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
f88fed5cd8
[set] Cache length in iterator
2018-12-23 20:34:24 -05:00
Ebrahim Byagowi
d0a706c7fd
Minor, remove redundant inline
2018-12-22 20:07:57 +03:30
Ebrahim Byagowi
ae6e348d64
Minor, tweak spaces
2018-12-22 20:07:57 +03:30
Michiharu Ariza
29f0b6bce7
CFF renaming ( #1507 )
...
* reimplement ByteStr as byte_str_t based on hb_ubytes_t
Unuse start_embed<ByteStr>
Also renamed SubByteStr to byte_str_ref_t
More renaming to come
* substr renamed to str_ref in line with its type byte_str_ref_t
* uncamelize non-table struct names
* uncamelized non-struct types OpCode etc
* add byte_str_t copy ctor
* test
* test2
* undo tests
* fix bot failure
* undo the previous change
* fixed tabs, added inline
* Revert "fixed tabs, added inline"
This reverts commit 21163c30e9
.
* fix tabs
2018-12-22 10:47:04 -05:00
Behdad Esfahbod
89d04129e2
[set] Actually derive iterator from hb_sorted_iter_t<>
2018-12-21 20:07:52 -05:00
Behdad Esfahbod
fc35919d01
[set] Implement unified iterator
2018-12-21 20:06:17 -05:00
Behdad Esfahbod
4911e67d2d
[set] Mark some internals protected
2018-12-21 20:00:52 -05:00
Behdad Esfahbod
954b985422
[iter] Add hb_sorted_iter_t<>
2018-12-21 19:55:02 -05:00
Behdad Esfahbod
b205105c9e
[iter] Change operator[] operand to be signed
...
To fix older compilers again (this was the case in hb_array_t).
hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-layout-common.hh:1354: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-layout-common.hh: In member function 'bool OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t<const OT::IntType<short unsigned int, 2u> >, hb_array_t<const OT::IntType<short unsigned int, 2u> >)':
hb-ot-layout-common.hh:1490: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*, int) <built-in>
2018-12-21 19:48:21 -05:00
Behdad Esfahbod
25786f49c1
[array] Port to hb_iter_t<>
...
hb_array_t is its own iterator...
2018-12-21 19:29:00 -05:00
Behdad Esfahbod
2a33ab0560
[iter] Change __more__ to fallback to __len__
2018-12-21 18:53:01 -05:00
Behdad Esfahbod
474a12058d
[array/vector] Rename len to length
2018-12-21 18:53:01 -05:00
Behdad Esfahbod
2fc1860a5b
[iter] Split hb_iter_t<> into hb_iter_t<> and hb_iter_mixin_t<>
2018-12-21 18:09:45 -05:00
Behdad Esfahbod
865deeb3be
Adjust internal header dependencies
2018-12-21 17:46:10 -05:00
Behdad Esfahbod
8e5c2bc60b
[Makefile.am] Minor
2018-12-21 17:29:11 -05:00
Behdad Esfahbod
f419cef417
[iter] Include from hb.hh
2018-12-21 17:22:09 -05:00
Behdad Esfahbod
7557e34872
[iter] Move hb_fill() and hb_copy() to hb-iter.hh
2018-12-21 17:21:19 -05:00
Behdad Esfahbod
5e1840e031
[iter] Disallow copy-construction or assignment of hb_iter_t<>
...
Should only be done by subclass.
2018-12-21 16:39:57 -05:00
Behdad Esfahbod
65e8bd56ad
[iter] Fix hb_copy() return value
2018-12-21 16:20:30 -05:00
Behdad Esfahbod
40d71211a8
[iter] Add const_iter_t / const_iter()
2018-12-21 16:19:44 -05:00
Behdad Esfahbod
aaddfaa57a
[iter] Make hb_fill() take collection type, not iter
...
Starting to get the hang of when take which.
2018-12-21 16:04:38 -05:00
Behdad Esfahbod
7b4eea853c
[array] Add more hb_array() / hb_sorted_array() variants
2018-12-21 16:02:16 -05:00
Behdad Esfahbod
09740148e3
[serialize] Use component_list by reference, as a supplier
2018-12-21 15:56:01 -05:00
Behdad Esfahbod
3dbe1e364c
[iter] Add .random_access()
2018-12-21 15:53:09 -05:00
Behdad Esfahbod
20f14b4aa6
[iter] Fix __end__()
2018-12-21 15:19:22 -05:00
Behdad Esfahbod
95265aeab7
[array] Remove copy constructor
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1502
2018-12-21 15:12:55 -05:00
Behdad Esfahbod
69d232eaea
Fix bot
...
C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: 'hb_vector_t<OPENTYPE_FEATURE_RECORD,8>::operator +': 3 overloads have similar conversions [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2018-12-21 15:08:06 -05:00
Behdad Esfahbod
b9a51f5310
Minor
2018-12-21 15:05:00 -05:00
Behdad Esfahbod
bdb6da7226
[iter] Fix test again
2018-12-21 11:20:27 -05:00
Behdad Esfahbod
e952075248
Minor
2018-12-21 11:15:16 -05:00
Behdad Esfahbod
35503d7d73
[iter] More prototyping
2018-12-21 03:03:46 -05:00
Behdad Esfahbod
73c7a896d1
[iter] Make hb_fill() and hb_copy() take iterators
...
I'm still going back and force...
2018-12-21 02:48:28 -05:00
Behdad Esfahbod
12e506fda4
[iter] Add hb_fill()
2018-12-21 02:47:04 -05:00
Behdad Esfahbod
ad3ed58de5
[iter] Start prototyping hb_copy()
2018-12-21 02:25:58 -05:00
Behdad Esfahbod
44af738d19
[iter] Showcase implicit casts
2018-12-21 01:59:37 -05:00
Behdad Esfahbod
879faa2aee
Rename
2018-12-21 01:57:40 -05:00
Behdad Esfahbod
aeb696a91c
[iter] Rename
2018-12-21 01:57:02 -05:00
Behdad Esfahbod
8001e00a47
[iter] First sample use
2018-12-21 01:53:27 -05:00
Behdad Esfahbod
19d2b5013d
[iter] Add bidirectionality
2018-12-21 01:20:04 -05:00
Behdad Esfahbod
314d8698d0
[iter] Sketch new iterator design
2018-12-21 01:15:49 -05:00
Behdad Esfahbod
f6d5f1e91c
[iter] Add empty test
2018-12-21 00:23:46 -05:00
Behdad Esfahbod
b80b97b549
Revert "Remove unused hb-iter.hh"
...
This reverts commit 969ff3c7aa
.
2018-12-21 00:08:05 -05:00
Behdad Esfahbod
a728c63a98
[vector] Add operator bool
2018-12-20 23:15:49 -05:00
Behdad Esfahbod
bd36977392
Rename
2018-12-20 23:14:24 -05:00
Behdad Esfahbod
e6ebc9b6f8
Remove unused typedef
2018-12-20 23:13:36 -05:00
Behdad Esfahbod
4941e95f10
2.3.0
2018-12-20 21:48:57 -05:00
Behdad Esfahbod
87f7c83fff
[serializer] Add operator <<
...
Not sure if we are going to use it. But might incentivize us to.
2018-12-20 15:54:17 -05:00
Behdad Esfahbod
5b70074edf
Add hb_assign(obj, value)
2018-12-20 15:38:59 -05:00
Behdad Esfahbod
6124123393
[serialize] Adjust ClassDef
...
[skip ci]
2018-12-20 12:26:44 -05:00
Behdad Esfahbod
4220b7bdd7
Fix code on big-endian gcc / clang
...
Ouch! We need a bigendian bot...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1498
2018-12-20 11:48:45 -05:00
Behdad Esfahbod
c87ee72232
Minor [skip ci]
2018-12-19 22:28:16 -05:00
Behdad Esfahbod
5000a59a63
[saitnize] Minor
2018-12-19 22:27:09 -05:00
fanc999
3ee4ea9456
Fix build on older Visual Studio versions ( #1499 )
...
* src/hb-cff-interp-dict-common.hh: Use ull for unsigned int64_t
The llu suffix does not work for older Visual Studio versions
(pre-2013), but ull works for all the compilers that we attempt to
support.
* test/api: Fix build on pre-C99 compilers
Ensure variables are declared at the top of the block.
* src/hb-dsalgs.hh: Add specialization for hb_is_signed<> for __int8
Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed to
int8_t) to be equivilant to signed char, so the compiler cannot find the
corresponding hb_is_signed<> specialization that is needed.
The interesting thing is unsigned __int8 is considered to be equivilant
to unsigned char, so as the other types (short, int, long) that we look
for here, so only the specialization for __int8 is added here.
This will fix builds on Visual Studio 2008 at least.
2018-12-19 22:26:54 -05:00
Behdad Esfahbod
a62870506d
[sanitize] Use hb_static_size instead of ::static_size
...
https://github.com/harfbuzz/harfbuzz/issues/1496#issuecomment-448818112
2018-12-19 21:05:00 -05:00
Ebrahim Byagowi
0c9cd5d5f4
[test] Fix test-name-table.cc leak issue
...
Spotted it accidentally but wanted to see if is anything serious so went for fixing it
2018-12-19 21:18:30 +03:30
Behdad Esfahbod
3d9d7dc4dd
[arrays] Add hb_ubytes_t for unsigned char
2018-12-18 22:11:23 -05:00
Behdad Esfahbod
f1e95e40ed
[arrays] Remove hb_supplier_t<>
2018-12-18 16:49:08 -05:00
Behdad Esfahbod
f9417af29b
[serialize] Propagate error from hb-face
2018-12-18 13:23:32 -05:00
Behdad Esfahbod
9aebfb4182
[serialize] Streamline error propagation
2018-12-18 13:22:17 -05:00
Behdad Esfahbod
969ff3c7aa
Remove unused hb-iter.hh
...
The ideas there are all part of hb-array.hh now. To be determined how we
want to use generic iterator patterns.
2018-12-17 22:43:00 -05:00
Behdad Esfahbod
b1094fc2d2
[arrays] Minor tweaks to hb_supplier_t
...
I think I like to keep this hb_supplier_t thing separately from hb_array_t.
2018-12-17 22:41:04 -05:00
Behdad Esfahbod
cf39c24205
[arrays] Rename Supplier to hb_supplier_t
2018-12-17 22:36:23 -05:00
Behdad Esfahbod
6b5eaa7530
Hide hb_addressof()
2018-12-17 21:55:33 -05:00
Behdad Esfahbod
6befa75cdf
Enable __builtin_* on clang
...
We'll see which old clang versions this breaks...
2018-12-17 20:35:45 -05:00
Behdad Esfahbod
8d2d410256
Add hb_addressof() and use it to fix bug after hb_bytes_t merge
...
We cannot take address hb_bytes_t direction. We need to use the
newly added hb_addressof(), ala std::addressof().
2018-12-17 20:23:26 -05:00
Behdad Esfahbod
49334f9b50
Enable system extensions in hb.hh
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1491
2018-12-17 18:27:36 -05:00
prrace
37c14bc745
Fix Solaris use after free ( #1495 )
2018-12-17 17:59:37 -05:00
Behdad Esfahbod
483f2491e4
Remove define GNU_SOURCE
...
Not needed. We get it in our config.h automatically thanks to
AC_USE_SYSTEM_EXTENSIONS. Let's see whose build it breaks...
If we end up putting it back, we should add other things from
that macro and remove the macro.
2018-12-17 17:56:10 -05:00
Behdad Esfahbod
87ff65aea1
Fix more warnings
2018-12-17 17:19:54 -05:00
prrace
f9d219a174
Fix Solaris Trailing comma in enum warnings ( #1490 )
2018-12-17 17:18:47 -05:00
Ebrahim Byagowi
244a8627f7
Lower coretext_aat shaper priority ( #1488 )
...
Related to https://github.com/harfbuzz/harfbuzz/issues/1478
2018-12-17 13:01:43 -05:00
Ebrahim Byagowi
e412008599
Remove redundant void from C++ sources ( #1486 )
2018-12-17 13:01:01 -05:00
Ebrahim Byagowi
7ace10078c
Minor, fix two more ArrayOf incorrect operator logic
2018-12-17 20:07:04 +03:30
Behdad Esfahbod
a1240383aa
[arrays] Minor fix
2018-12-17 10:44:14 -05:00
Behdad Esfahbod
381c3548e9
[array] Add cast operator to add const to Type
...
In lieu of constructor removed in previous commit.
2018-12-17 00:39:30 -05:00
Behdad Esfahbod
15acf33c22
[array] Remove problematic constructor
2018-12-17 00:38:13 -05:00
Behdad Esfahbod
470369a871
[array] Add arithmetic operators
2018-12-17 00:21:38 -05:00
Behdad Esfahbod
6cd60c2f2a
[array] Return Crap instead of Null if Type is not const
...
Ouch!
2018-12-17 00:09:06 -05:00
Behdad Esfahbod
94e72cf1c9
[array] Add operator *
2018-12-17 00:06:40 -05:00
Behdad Esfahbod
68d4a5eee0
[array] Add constructor from fixed-size array
2018-12-17 00:02:42 -05:00
Behdad Esfahbod
a4354d2fd3
[array] Organize
2018-12-16 23:57:27 -05:00
Behdad Esfahbod
84c1865821
[arrays] Reduce Supplier<> even further
2018-12-16 23:52:17 -05:00
Behdad Esfahbod
1bcc4fc9f3
Whitespace
2018-12-16 23:47:56 -05:00
Behdad Esfahbod
f85f6e815f
[array] Add operator +=
2018-12-16 23:45:07 -05:00
Behdad Esfahbod
7c0e3e9b2b
[array] Add constructor from hb_array_t<const Type>
2018-12-16 23:43:17 -05:00
Behdad Esfahbod
92680361ec
[arrays] Move Supplier<> to hb-array.hh
2018-12-16 23:38:51 -05:00
Behdad Esfahbod
2a3fa3f82f
[arrays] Remove unnecessary constructor from Supplier<>
...
Looks like operator hb_array_t<> from vector works here. :)
2018-12-16 23:33:03 -05:00
Behdad Esfahbod
507cac4943
[arrays] Start moving Supplier<> to hb_array_t<>
2018-12-16 23:31:19 -05:00
Behdad Esfahbod
1e2c98126e
[arrays] Remove unused stride from Supplier
2018-12-16 22:31:16 -05:00
Behdad Esfahbod
0d0fe9df46
[arrays] Remove need of stride in Supplier<>
2018-12-16 22:31:13 -05:00
Behdad Esfahbod
dcfa4a8d71
[array] Remove custom hb_bytes_t implementation
2018-12-16 22:31:13 -05:00
Behdad Esfahbod
3656f56d47
[arrays] Minor
2018-12-16 22:31:13 -05:00
Behdad Esfahbod
aa8f94714e
[array] Minor
2018-12-16 22:31:13 -05:00
Behdad Esfahbod
5a552f7546
[array] Move hb_array_t and related types to hb-array.hh
2018-12-16 22:31:10 -05:00
Behdad Esfahbod
01d06e34ff
Minor change to explicit_operator aesthetics
2018-12-16 14:27:43 -05:00
Ebrahim Byagowi
b2ebaa9afa
Remove redundant 'inline' from methods ( #1483 )
2018-12-16 14:08:10 -05:00
Behdad Esfahbod
7251c77290
Whitespace
2018-12-15 21:00:55 -05:00
Behdad Esfahbod
829b56b1a2
Whitespace
2018-12-15 16:20:13 -05:00
Behdad Esfahbod
42a1012562
[subset] Actually subset GDEF
2018-12-13 19:39:59 -05:00
Behdad Esfahbod
c9c746c7f6
[subset] Fix up ClassDef some more
2018-12-13 18:39:30 -05:00
Behdad Esfahbod
7ee6128902
[subset] Fix ClassDefFormat1 subsetting
2018-12-13 18:32:04 -05:00
Behdad Esfahbod
1b6d0c44b3
[subset] Sketch GDEF subsetting
2018-12-13 18:10:48 -05:00
Behdad Esfahbod
705e2f5056
[subset] Implement for ClassDef
2018-12-13 17:48:42 -05:00
Behdad Esfahbod
6e33a3955d
Minor
2018-12-13 16:40:01 -05:00
Behdad Esfahbod
cc65901ca7
[serialize] Implement for ClassDef
2018-12-13 16:01:45 -05:00
Behdad Esfahbod
e5309e4fd8
[serialize] Implement for ClassDefFormat2
2018-12-13 15:57:12 -05:00
Behdad Esfahbod
c8b43cbe31
[serialize] Implement for ClassDefFormat1
2018-12-13 15:53:00 -05:00
Behdad Esfahbod
5761031329
[subset] Minor
2018-12-12 21:21:26 -05:00
Michiharu Ariza
798e98c47b
[CFF] bad offset in Index ( #1476 )
...
* Update hb-ot-cff-common.hh
* fix bug
* bummer fix wasn't hit. refix
* additional sanity check
* Added test cases for oss-fuzz issues 11805, 11806
2018-12-12 21:08:15 -05:00
Michiharu Ariza
bcb4ecaf68
[CFF] check out of range FD index ( #1477 )
...
* add fd index checks to subr subsetter
also added oss-fuzz test case
* undid SubrSubsetParam::is_valid
because already validated by SubrClosures.valid
2018-12-12 20:36:01 -05:00
Behdad Esfahbod
2cc993e035
[dispatch] Minor
2018-12-12 10:07:38 -05:00
Behdad Esfahbod
602fbfe3c9
[sanitize] Fix sanitizing sublookup array
2018-12-12 09:56:47 -05:00
Behdad Esfahbod
c78e4784fb
[dispatch] Minor
2018-12-12 09:50:18 -05:00
Behdad Esfahbod
f9d211af1d
Revert "Minor fix re sanitize of Lookup subtables"
...
This reverts commit 7146718bef
.
Fixing differently.
2018-12-12 09:44:30 -05:00
Ebrahim Byagowi
7ee5c52345
minor style fix, use void in methods on no argument
2018-12-12 15:14:37 +03:30
Behdad Esfahbod
7146718bef
Minor fix re sanitize of Lookup subtables
...
We were dereferencing Null pointers and trying to sanitize them,
which is not necessary...
2018-12-11 23:44:29 -05:00
Behdad Esfahbod
ce069d1932
Minor
2018-12-11 23:07:48 -05:00
Behdad Esfahbod
1aea869446
[subset] Map glyphs during SingleSubst subsetting
...
Ha!
2018-12-11 22:53:58 -05:00
Behdad Esfahbod
41d1a1c10f
[subset] Minor
2018-12-11 22:48:27 -05:00
Behdad Esfahbod
2aba2c6c73
[serialize] Break down assert
2018-12-11 21:21:13 -05:00
Michiharu Ariza
2941208f1e
[CFF] oss-fuzz issue 11690 ASSERT: substr.offset >= opStart ( #1461 )
...
* fix oss-fuzz 11690: substr.offset >= opStart
detect recursive subroutine call & handle as error
* fix build failure
* add minimized test case for oss-fuzz 11690
* removed asserts
2018-12-11 15:21:24 -05:00
Michiharu Ariza
333586245c
minimize use of assert: removed or changed to error handling ( #1467 )
2018-12-11 15:20:20 -05:00
👻
9f3a51ddb9
[ucdn] Fix header
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1470
2018-12-11 13:38:05 -05:00
Ebrahim Byagowi
1683bb2c93
[glyf] minor
2018-12-08 13:57:39 +03:30
Ebrahim Byagowi
f7cfe99815
[os2] Move typometrics detection logic to the table ( #1465 )
2018-12-08 13:40:44 +03:30
Ebrahim Byagowi
47cf9a9633
Apply non-controversial parts of ot-style ( #1464 )
...
Things to be used in https://github.com/harfbuzz/harfbuzz/pull/1459
2018-12-08 10:20:25 +03:30
Michiharu Ariza
4d809696ef
fix for issue #1447 ( #1462 )
...
Added case for OpCode_BaseFontName. This opcode in spec but practically unused.
Added a comment for default case which can't be hit
2018-12-07 20:49:39 -08:00
Ebrahim Byagowi
1abd4fcaec
[fdsc] minor
2018-12-07 22:34:12 +03:30
Michiharu Ariza
59345cdef3
[CFF] Refix oss-fuzz 11714: set_blends (PR #1458 ) ( #1460 )
...
* pass subarray of stack to set_blends
* get_subarray to return a value, not ref
* restored error check (with tweak)
2018-12-06 13:36:26 -08:00
Behdad Esfahbod
20245f0000
Fix likely check
...
Ouch!
2018-12-06 10:27:37 -08:00
Behdad Esfahbod
d866e905fd
Add default value to first argument of sub_array()
2018-12-06 10:26:32 -08:00
Behdad Esfahbod
f1352f7486
Add sub_array to hb_vector_t
2018-12-06 10:21:17 -08:00
Behdad Esfahbod
ca23b71935
Add default-value for second arg of sub_array()
2018-12-06 10:21:17 -08:00
Michiharu Ariza
1ccbdcf73b
Merge branch 'master' into cff-check-blends
2018-12-05 21:37:38 -08:00
Michiharu Ariza
14d29a1043
check number of blends against args on stack
2018-12-05 21:33:29 -08:00
Ebrahim Byagowi
f95324a335
Merge pull request #1457 from harfbuzz/cff-varstore-sanitize
...
[CFF] oss-fuzz issue 11713 (CFF2VariationStore::serialize)
2018-12-06 08:33:44 +03:30
Michiharu Ariza
c31092ab34
sanitize variationStore in CFF2 against its size
2018-12-05 17:04:55 -08:00
Michiharu Ariza
34e3ef8ff3
Merge branch 'master' into cff-subr-sanitize
2018-12-05 15:50:05 -08:00
Behdad Esfahbod
d9dabc00e9
Merge pull request #1454 from harfbuzz/cff-fixbcd
...
[CFF] fix oss-fuzz issue 11674: parse_bcd
2018-12-05 15:39:34 -08:00
Michiharu Ariza
6dcfda92c1
sanitize CFF1 & CFF2 global subrs
2018-12-05 15:07:46 -08:00
Michiharu Ariza
6708c5595f
fix oss-fuzz issue 11675 (ASSERT: count <= str.len)
...
Also added an additional error check to avail ()
2018-12-05 12:51:18 -08:00
Michiharu Ariza
2cb9d4c183
Merge branch 'master' into cff-fixbcd
2018-12-05 11:25:29 -08:00
Michiharu Ariza
a5fa843c74
fixed a bug with fractional part in a negative value
2018-12-05 11:18:16 -08:00
Ebrahim Byagowi
8394a6cb25
[os2] Make newer table fields accessible ( #1452 )
2018-12-05 15:23:41 +03:30
Ebrahim Byagowi
5ab086ebb1
[fdsc] Implement the table parsing
...
Related to https://github.com/harfbuzz/harfbuzz/issues/1337
May used in addition to an API related to STAT.
Lots of Apple fonts have it.
2018-12-05 14:48:31 +03:30
Ebrahim Byagowi
8f80e53341
[gasp] Implement the table parsing
...
May or may not be used in https://github.com/harfbuzz/harfbuzz/pull/1432
2018-12-05 14:48:31 +03:30
Ebrahim Byagowi
79e7e3445e
Merge pull request #1449 from harfbuzz/cff-fixcharset
...
[CFF] fix for oss-fuzz 11657: Charset overrun
2018-12-05 13:25:18 +03:30
Ebrahim Byagowi
cf4b7db6b1
Merge pull request #1448 from harfbuzz/cff-leak
...
[CFF] fix leak: oss-fuzz 11662
2018-12-05 13:23:23 +03:30
Michiharu Ariza
620d1ef588
fix unsigned long const
2018-12-05 00:36:11 -08:00
Michiharu Ariza
28dfb4c142
fix signed/unsigned comparison
2018-12-05 00:26:03 -08:00
Michiharu Ariza
f9cee08edd
use sized int types in parse_bcd
2018-12-04 23:58:26 -08:00
Michiharu Ariza
c01a5f32a3
refix
2018-12-04 23:23:23 -08:00
Michiharu Ariza
755fefc921
fix bug
2018-12-04 23:18:28 -08:00
Michiharu Ariza
0e81b153af
fix typo
2018-12-04 22:40:07 -08:00
Michiharu Ariza
85d4b15cd8
include float.h
2018-12-04 22:30:33 -08:00
Michiharu Ariza
5a7c371e4c
check overflow & clamp
2018-12-04 22:24:38 -08:00
Michiharu Ariza
32cc46c75a
[CFF] fix oss-fuzz issue 11670: NULL dereference ( #1450 )
...
* guard against no subr access
* code tweak
* add minimized testcase for oss-fuzz 11670 (Null deference)
2018-12-05 09:02:34 +03:30
Michiharu Ariza
d3d2f32c6e
fix oss-fuzz 11657: buffer overrun
...
Check overrun in Charset1_2::get_glyph
2018-12-04 13:51:26 -08:00
Ebrahim Byagowi
d0a250a7b1
Reuse hb_aat_layout_has_* logic in coretext-aat detection logic ( #1442 )
2018-12-04 23:42:13 +03:30
Michiharu Ariza
803d2f92dc
Merge branch 'master' into cff-leak
2018-12-04 11:01:26 -08:00
Michiharu Ariza
6ce8d10b45
add unlikely to error handling
2018-12-04 10:39:17 -08:00
Michiharu Ariza
0b952e6026
more leak fixes
2018-12-04 10:22:35 -08:00
Michiharu Ariza
9473463f5c
fix attempt for oss-fuzz 11662 leak
2018-12-04 09:58:48 -08:00
Michiharu Ariza
04f2ca9421
removed assert
2018-12-04 09:24:07 -08:00
Behdad Esfahbod
c968869f21
Merge pull request #1441 from harfbuzz/cff-doublenum
...
use double as CFF Number implementation
2018-12-04 04:14:13 -05:00
Michiharu Ariza
c48f53d309
more double changes
2018-12-03 16:59:41 -08:00
Michiharu Ariza
5fff6ab002
additional precision made a difference in extents test
2018-12-03 16:06:58 -08:00
Michiharu Ariza
9e5180cd44
more double changes
2018-12-03 15:32:42 -08:00
Michiharu Ariza
9af33d7a2a
Number to use double for all types
2018-12-03 14:48:46 -08:00
Ebrahim Byagowi
01f628cf55
[aat] Expose hb_aat_layout_has_tracking API
2018-12-03 22:27:26 +03:30
Behdad Esfahbod
d19b1680b5
[aat] Expose a couple APIs
...
New API:
+hb_aat_layout_has_substitution()
+hb_aat_layout_has_positioning()
2018-12-03 10:41:37 -05:00
Behdad Esfahbod
84efe0438e
[aat] Fix division sign fallout
...
Happened after 11d2f49af8
since now nClasses is unsigned int...
2018-12-02 12:39:14 -05:00
Behdad Esfahbod
2087f5a2a7
Add casts to hb_array_t<>
2018-12-01 20:04:45 -05:00
Behdad Esfahbod
58d4d19947
Simplify build source list
2018-12-01 19:34:18 -05:00
Behdad Esfahbod
11d2f49af8
New approach to change BigEndian casts to be int-sized
...
Fixes spurious warnings like:
Fixes https://github.com/harfbuzz/harfbuzz/issues/1436
2018-12-01 13:12:21 -05:00
Behdad Esfahbod
50e0273ab1
Change hb_assert_unsigned_t<> to hb_is_signed<>
2018-12-01 13:07:49 -05:00
Behdad Esfahbod
c3a8b047aa
Revert "Change BigEndian casts to be int-sized"
...
This reverts commit eb5ddd32bf
.
Broke tests, badly. To be investigated and reenabled.
2018-12-01 00:26:39 -05:00
Behdad Esfahbod
be45677ab6
Minor
2018-12-01 00:04:29 -05:00
Behdad Esfahbod
eb5ddd32bf
Change BigEndian casts to be int-sized
...
Fixes spurious warnings like:
Fixes https://github.com/harfbuzz/harfbuzz/issues/1436
2018-12-01 00:03:01 -05:00
Behdad Esfahbod
e8860fdcaa
Fix more warning
2018-11-30 23:38:24 -05:00
Behdad Esfahbod
af349ee348
Fix warning
2018-11-30 23:20:50 -05:00
Behdad Esfahbod
825df6dbc7
[CFF] Change spaces to tabs
2018-11-30 23:04:59 -05:00
Behdad Esfahbod
592f39b3c4
[CFF] Whitespace
2018-11-30 22:54:57 -05:00
Behdad Esfahbod
a2e8d1d455
Minor
2018-11-30 22:54:20 -05:00
Behdad Esfahbod
5e64e0f532
Merge pull request #1113 from harfbuzz/cff-subset
...
CFF/CFF2 subsetter
2018-11-30 22:40:54 -05:00
Bruce Mitchener
09096aa89f
Use nullptr instead of 0/NULL. ( #1435 )
...
* Use nullptr instead of 0/NULL.
* Update test-name-table.cc
2018-11-30 22:22:49 -05:00
Michiharu Ariza
d8c6913765
undo 0u
2018-11-30 18:58:14 -08:00
Michiharu Ariza
2c859b3880
Merge branch 'master' into cff-subset
2018-11-30 18:47:34 -08:00
Behdad Esfahbod
fb05908213
Revert ugly fixes
...
Now that we have 6daf45e0, revert cryptic hacks...
This reverts commit abd81ed4f5
.
This reverts commit 9c6921c08c
.
This reverts commit d39760cabf
.
This reverts commit fedd8e6c17
.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-30 20:56:15 -05:00
Behdad Esfahbod
dfad19ad5a
Make operator [] take signed int
...
The built-in operator takes signed int. So, match it, such that
the built-in is never a better or equally-good match to our operator.
Fixes "ambiguous overload" errors from gcc 4.2 and VS 2008.
See https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-30 20:56:14 -05:00
Michiharu Ariza
9483da145d
redo fixes
2018-11-30 16:59:41 -08:00
Michiharu Ariza
291da44823
yet another
2018-11-30 16:50:46 -08:00
Michiharu Ariza
b1821b9d09
some more
2018-11-30 16:31:01 -08:00
Michiharu Ariza
9784cff556
fix another pesky gcc error
2018-11-30 16:07:08 -08:00
Michiharu Ariza
23a797b443
silence picky gcc errors
2018-11-30 15:15:31 -08:00
Michiharu Ariza
9ae954f43a
Merge branch 'master' into cff-subset
2018-11-30 15:00:52 -08:00
Behdad Esfahbod
fedd8e6c17
One more.........
...
I wonder if there's something better to do about these :(.
In file included from hb-ot-color.cc:31:
hb-ot-color-cpal-table.hh: In member function 'unsigned int OT::CPAL::get_size() const':
hb-ot-color-cpal-table.hh:118: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
2018-11-30 16:50:30 -05:00
Behdad Esfahbod
bc5db9b080
One more....
...
hb-ot-vorg-table.hh:96: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:87: note: candidate 1: const Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) const [with Type = OT::VertOriginMetric, unsigned int PreallocedCount = 8u]
hb-ot-vorg-table.hh:96: note: candidate 2: operator[](const T*, int) <built-in>
2018-11-30 16:04:52 -05:00
Behdad Esfahbod
d39760cabf
One more...
...
Sigh.
hb-ot-kern-table.hh: In member function 'int OT::KernSubTableFormat3<KernSubTableHeader>::get_kerning(hb_codepoint_t, hb_codepoint_t) const':
hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]' in 'kernValue[kernIndex[i]]'
hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int) <built-in>
hb-dsalgs.hh:574: note: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::IntType<short int, 2u>]
2018-11-30 15:55:30 -05:00
Behdad Esfahbod
9c6921c08c
More...
...
hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
...
2018-11-30 15:16:57 -05:00
Behdad Esfahbod
f998bb2086
More weird fixes
...
In file included from hb-ot-name.cc:29:
hb-ot-name-table.hh: In member function 'unsigned int OT::name::get_size() const':
hb-ot-name-table.hh:157: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::NameRecord]
hb-ot-name-table.hh:157: note: candidate 2: operator[](const T*, int) <built-in>
hb-ot-name-table.hh: In member function 'void OT::name::accelerator_t::init(hb_face_t*)':
hb-ot-name-table.hh:196: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
hb-ot-name-table.hh:196: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-name-table.hh:197: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
hb-ot-name-table.hh:197: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-name-table.hh:198: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::NameRecord]
hb-ot-name-table.hh:198: note: candidate 2: operator[](T*, int) <built-in>
make[4]: *** [libharfbuzz_la-hb-ot-name.lo] Error 1
make[3]: *** [all-recursive] Error 1
2018-11-30 12:52:21 -05:00
Behdad Esfahbod
abd81ed4f5
Umm. Cryptic, yes
...
In file included from hb-face.cc:35:
hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const':
hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const':
hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
hb-face.cc: In function 'hb_blob_t* _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)':
hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in>
hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](const T*, int) <built-in>
hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:651: note: candidate 2: operator[](T*, int) <built-in>
hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:651: note: candidate 2: operator[](const T*, int) <built-in>
2018-11-30 11:52:41 -05:00
Behdad Esfahbod
0f32c95e14
Fix a few more sizeof(vector[0]) errors with weird compilers
2018-11-30 11:31:39 -05:00
Behdad Esfahbod
88630a458b
Fix build for realz
2018-11-30 01:11:04 -05:00
Behdad Esfahbod
346286d04e
Fix build
2018-11-30 00:44:40 -05:00
Behdad Esfahbod
31f39cb41e
[post] Rename v2 to v2X
2018-11-30 00:38:08 -05:00
Behdad Esfahbod
e3dd47e602
Move things
2018-11-30 00:32:12 -05:00
Behdad Esfahbod
27a6b0a2f7
Fix build for realz
2018-11-29 16:29:30 -05:00
Behdad Esfahbod
e2af4dd1ec
[uniscribe] Fix build
2018-11-29 16:03:24 -05:00
Ebrahim Byagowi
e7bd29ea11
Limit __builtin_bswap16 to GCC >= 5 as it was implemented on 4.8
2018-11-29 23:47:20 +03:30
Behdad Esfahbod
ac0264717b
[coretext] Fix compile
...
Fingers crossed.
2018-11-29 15:07:44 -05:00
Behdad Esfahbod
5c4fead734
Convert "static const hb_tag_t" constants to enum
2018-11-29 15:05:47 -05:00
Behdad Esfahbod
9e4138c825
Convert misc "static const" constants to enum
2018-11-29 15:01:10 -05:00
Behdad Esfahbod
44cbd2ea3d
Convert "static const bool" constants to anonymous enum
2018-11-29 14:56:27 -05:00
Behdad Esfahbod
861bc75349
[vector] Make pointer cast explicit
...
Too bad this doesn't help MSVC 2008 build, as explicit operators are
C++11.
2018-11-29 14:34:44 -05:00
Behdad Esfahbod
72955e6825
Hand-hold older compilers
2018-11-29 14:28:44 -05:00
Behdad Esfahbod
000d4b128e
Make shaper's override_features() override user features as well
...
The override_features is used to override features that are normally
discretionary features, but in a specific shaper are for various
reasons desired to be bolted on or off, because they've been used
for inherent shaping. As such, it makes sense that they also
override user features. Ie. if user turned 'liga' on, we don't
want Khmer shaping to become broken... Or turn 'clig' off...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1310
2018-11-29 12:32:47 -05:00
Behdad Esfahbod
a95d9d8c84
[khmer] Move 'clig' to overrides
...
Prerequisite for https://github.com/harfbuzz/harfbuzz/issues/1310
2018-11-29 12:32:04 -05:00
Behdad Esfahbod
282ce7230b
Fix "typename outside template" issues
...
Nothing an extra template class wouldn't fix...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1419
2018-11-29 12:18:14 -05:00
Behdad Esfahbod
dc41ecef85
2.2.0
2018-11-29 11:53:53 -05:00
Behdad Esfahbod
7b85081be4
[icu] Minor
2018-11-29 11:34:22 -05:00
Behdad Esfahbod
0bcb1de126
Merge pull request #1418 from gvictor/replace_icu_deprecated
...
Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT
2018-11-29 10:39:18 -05:00
Michiharu Ariza
471db3aa6f
workaround for issue #1417
2018-11-28 17:06:11 -08:00
Michiharu Ariza
32d291ae89
Merge branch 'master' into cff-subset
2018-11-28 16:27:45 -08:00
Behdad Esfahbod
42a2b496e4
[kerx] Fix Format2 index calc again
2018-11-28 15:24:30 -05:00
Behdad Esfahbod
a3267cf803
[kern] Fix kern table Format2 offsetToIndex
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1421
2018-11-28 15:06:01 -05:00
Behdad Esfahbod
f9a9c0fd1e
[kerx] Fix ClassTable implementation for 'kern' table Format 2
2018-11-28 14:51:56 -05:00
Behdad Esfahbod
5b4a789ca8
[aat] Towards adding two ClassTable's
2018-11-28 14:49:45 -05:00
Behdad Esfahbod
987f418772
Merge pull request #1398 from Adenilson/bigInt01
...
Optimize harfbuzz big integer conversions
2018-11-27 17:40:32 -05:00
Behdad Esfahbod
4e2a03b6b6
Comment
2018-11-27 17:40:09 -05:00
Adenilson Cavalcanti
4a719a7f4c
Optimize harfbuzz big integer conversions
...
Profiling showed that type conversions were adding considerable cycles in time
spent doing text shaping.
The idea is to optimize it using native processor instructions to help Blink
layout performance.
Doing further investigation revelead that compilers may not use the
proper instruction on ARM 32bits builds (i.e. REV16).
One way to insure that the generated ASM was ideal for both gcc/clang
was using __builtin_bswap16.
Added bonus is that we no longer need to test for CPU architecture.
2018-11-27 13:43:05 -08:00
Victor Chang
a85886fc77
Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT
...
Use of the deprecated API USCRIPT_CODE_LIMIT prevents harfbuzz
using the ICU4C as a shared library.
The API has been replaced by u_getIntPropertyMaxValue(UCHAR_SCRIPT)
2018-11-27 11:51:45 +00:00
Behdad Esfahbod
574d888c8a
[aat] Ignore GSUB table of Muthu Foundry if they have morx table
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1410
2018-11-25 16:51:22 -05:00
Behdad Esfahbod
4151c2848d
[GDEF] Move more code
2018-11-25 16:38:36 -05:00
Behdad Esfahbod
4f21703f22
[GDEF] Move code around
2018-11-25 15:59:18 -05:00
Behdad Esfahbod
4ed9fb1a00
[GDEF] Minor
2018-11-25 15:53:20 -05:00
Behdad Esfahbod
926f512f35
[aat.feat] Rework API and implementation
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1346
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
84dacbca7e
[aat.feat] Add _MAX_VALUE to enums
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
3922aae162
[aat.feat] Minor
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
0f8e98eca2
[aat.feat] Whitespace
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
c225606833
[aat.feat] Port to SortedUnsizedArrayOf.bsearch()
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
52ae9867ef
[AAT.feat] Use lsearch for looking up SettingName's
...
They are not sorted.
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
44b9331f66
[aat] Fix include issues
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
b206133d1f
[aat] Move contents of hb-aat.h to hb-aat-layout.h
...
Since it was pages and pages...
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
2cb235d021
[aat.feat] Fix enum namespace
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
712762cabb
Minor
2018-11-25 01:16:02 -05:00
Behdad Esfahbod
e20f81f4fa
[aat] Rename feat API a bit more
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
54f4c17f0a
[feat] Rename API uses of setting to selector
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
9c64b216ec
[feat] Apply renamings and add documentation
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
a8726cb483
[feat] Use bsearch
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
4009a05ca7
[feat] Address Behdad comments
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
19b6025534
[feat] Address @behdad comments
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
9212ec203c
[feat] Complete feature types list
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
fbad794bd2
[feat] Add feature iteration API
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
7a0471aa35
[feat] Turn AAT feature id into enum
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
b233fa4bc9
[feat] Rename records to selectors as @drott
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
a157b3e4eb
[feat] Apply @behdad comments
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
3aff3f822f
[feat] Apply @drott and @jfkthame comments
2018-11-25 01:16:02 -05:00
Ebrahim Byagowi
b791bbbae4
[feat] Apply @jfkthame reviews
2018-11-25 01:16:01 -05:00
Ebrahim Byagowi
95abd53758
[feat] Expose public API
...
* hb_aat_get_feature_settings
2018-11-25 01:16:01 -05:00
Behdad Esfahbod
9326912941
[kerx] Fix crash
2018-11-25 00:27:23 -05:00
Behdad Esfahbod
6ee401049d
Simplify sanitize set_object() / fix bots
2018-11-25 00:21:13 -05:00
Behdad Esfahbod
c5a6b355e1
[kerx] Port to hb_sanitize_with_object_t
2018-11-24 23:49:23 -05:00
Behdad Esfahbod
c405ed0509
[morx] Port to hb_sanitize_with_object_t
2018-11-24 23:46:15 -05:00
Behdad Esfahbod
1e8994221f
Add hb_sanitize_with_object_t
...
Context manager.
2018-11-24 23:38:06 -05:00
Behdad Esfahbod
b3c5affc05
Simplify sanitize set_object()
2018-11-24 23:34:34 -05:00
Behdad Esfahbod
3d30972699
[aat] Skip terminator in VarSizedBinSearchArray<>
...
Fixes shaping with Apple Chancery on 10.13 again. In that font,
there was a terminator segment, that was tripping off sanitize().
2018-11-24 23:12:28 -05:00
Behdad Esfahbod
4202a3cde3
Minor
2018-11-24 22:49:50 -05:00
Behdad Esfahbod
1c2302bbf1
[debug] Print function in return_trace()
2018-11-24 22:32:17 -05:00
Behdad Esfahbod
748198a671
Revert "[aat.morx] Remove set_object() business"
...
This reverts commit ae8ed58a6e
.
Apparently this broke Apple Chancery from OS X 10.12 :(.
Investigating...
2018-11-24 22:16:59 -05:00
Behdad Esfahbod
c8a2dc820e
Revert "[aat.kerx] Remove kerx subtable boundary enforcement"
...
This reverts commit 15905a2a29
.
2018-11-24 22:16:53 -05:00
Behdad Esfahbod
9eeebd8dde
Revert "[sanitize] Remove now-unused set_object() machinery"
...
This reverts commit bbdb6edb3e
.
2018-11-24 22:16:47 -05:00
Behdad Esfahbod
f47c5da0aa
[arrays] Use hb_array_t<> in all places with sub_array()
2018-11-24 21:36:57 -05:00
Behdad Esfahbod
3246a8ebbd
[arrays] Merge ArrayOf's sub_array into hb_array_t's
2018-11-24 21:32:00 -05:00
Behdad Esfahbod
bbdb6edb3e
[sanitize] Remove now-unused set_object() machinery
2018-11-24 17:15:38 -05:00
Behdad Esfahbod
15905a2a29
[aat.kerx] Remove kerx subtable boundary enforcement
...
Have not encountered fonts needing this, but same reasoning as
for morx (see previos commit.)
2018-11-24 17:14:39 -05:00
Behdad Esfahbod
ae8ed58a6e
[aat.morx] Remove set_object() business
...
With OS X 10.13 Apple Chancery fails to ligate if we limit each morx
sub-chain to its declared length. Perhaps their newer compiler does
object-sharing across sub-chains. Anyway, since that's a valid, if
unspecified, way to compile tables, remove enforcement.
Probably do the same with kern/kerx.
2018-11-24 17:14:09 -05:00
Behdad Esfahbod
20edc70d53
[morx/kerx] Fix sanitize regression
...
Broke in 8dcc1913a1
If sanitizer is left with another object, it wouldn't work.
Better fix coming soon.
2018-11-24 14:53:05 -05:00
Behdad Esfahbod
ae96c98dfa
[color] Use SortedUnsizedArrayOf<>
2018-11-24 10:25:10 -05:00
Behdad Esfahbod
4a3b20738f
[trak] Coment
2018-11-24 10:17:59 -05:00
Behdad Esfahbod
918b1ee54d
[arrays] Add not_found to reference bsearch as well
2018-11-24 10:09:17 -05:00
Behdad Esfahbod
d77a098b73
[arrays] Improve bfind() interface
...
Much more useful now. :)
2018-11-24 10:06:13 -05:00
Behdad Esfahbod
8dcc1913a1
[kerx/morx] Make sure object length is sanitized before accessing it
2018-11-24 09:48:06 -05:00
Behdad Esfahbod
70d80c90fe
[arrays] Port ArrayOf.qsort() and hb_vector_t.qsort() to hb_array_t
2018-11-24 09:48:06 -05:00
Behdad Esfahbod
073d837aa2
[arrays] Port ArrayOf.qsort() to hb_array_t's
2018-11-24 09:48:06 -05:00
Behdad Esfahbod
ad5c871d80
[arrays] Add copy-constructor to hb_array_t and hb_sorted_array_t
2018-11-24 09:48:06 -05:00
Behdad Esfahbod
61de55bf49
[arrays] Port hb_vector_t.qsort() to hb_array_t's
2018-11-24 09:48:06 -05:00
Behdad Esfahbod
e3face8e79
[arrays] Remove one flavor of hb_vector_t.qsort()
2018-11-24 09:48:06 -05:00