Commit Graph

8563 Commits

Author SHA1 Message Date
Ebrahim Byagowi 0558413f27 Minor, tweak spaces 2019-10-01 13:50:11 +03:30
Ebrahim Byagowi 51b720f686 Fix -Wsizeof-array-div clang warning 2019-10-01 12:40:41 +03:30
Behdad Esfahbod faace9437e
Merge pull request #1807 from harfbuzz/subset-varstore
VariationStore serializer
2019-09-30 13:34:05 -07:00
Behdad Esfahbod e48ef0804a 2.6.2 2019-09-30 12:39:06 -07:00
Behdad Esfahbod d6ad613159 [docs] Misc fixes 2019-09-30 10:40:25 -07:00
Ebrahim Byagowi 2dce85ed06 [icu] Remove HB_ICU_STMT (#1993)
And ignore extra semicolon error to ICU versions < 65
2019-09-26 10:45:59 -07:00
Iceflower d6a83abd6a Define HB_UNUSED for clang 2019-09-26 14:12:20 +03:30
Iceflower c4567968cd [dwrite] Fix extra semicolon issue 2019-09-26 13:05:27 +03:30
Qunxin Liu b0c3eb06b6 [subset] GPOS Lookup Type 3: CursivePos 2019-09-25 05:43:25 +09:00
Ebrahim Byagowi 68d39ea486 Revert previous change and fix -Wrange-loop-analysis complains 2019-09-24 13:52:46 +03:30
Ebrahim Byagowi cbc0646a6c Minor, normalize for each calls 2019-09-24 12:09:20 +03:30
Ebrahim Byagowi 22b6c6a5c7
[serialize] use for each as #resolve_links, format 2019-09-24 12:06:28 +03:30
Qunxin Liu 512551f276 memory leak fix in serializer (#1988) 2019-09-23 17:28:16 -07:00
Ebrahim Byagowi f0a7677993
[gpos] minor 2019-09-23 21:09:39 +03:30
Ebrahim Byagowi 035ec3d1b4
[cmap] remove has_format14, minor format
fixes #1986
2019-09-23 20:51:43 +03:30
Ebrahim Byagowi c1a585fab0 [gpos] minor 2019-09-21 23:36:29 +04:30
Ebrahim Byagowi d87d38998a Fix clang -Wrange-loop-analysis complains
./hb-ot-layout-gpos-table.hh:674:43: error: loop variable '_' is always a copy because the range of type 'hb_zip_iter_t<hb_iter_type<hb_array_t<const OT::IntType<unsigned short, 2> > &>, hb_iter_type<hb_array_t<const OT::IntType<unsigned short, 2> > &> >' (aka 'hb_zip_iter_t<hb_array_t<const OT::IntType<unsigned short, 2> >, hb_array_t<const OT::IntType<unsigned short, 2> > >') does not return a reference [-Werror,-Wrange-loop-analysis]
      for (const hb_pair_t<Value, Value>& _ : hb_zip (val_iter, first_val_iter))
                                          ^
./hb-ot-layout-gpos-table.hh:674:12: note: use non-reference type 'hb_pair_t<OT::Value, OT::Value>' (aka 'hb_pair_t<IntType<unsigned short, 2>, IntType<unsigned short, 2> >')
      for (const hb_pair_t<Value, Value>& _ : hb_zip (val_iter, first_val_iter))

and

In file included from hb-subset.cc:44:
./hb-ot-vorg-table.hh:87:34: error: loop variable '_' is always a copy because the range of type 'hb_map_iter_t<hb_filter_iter_t<hb_sorted_array_t<const OT::VertOriginMetric>, const hb_set_t *, OT::HBGlyphID OT::VertOriginMetric::*, nullptr>, (lambda at ./hb-ot-vorg-table.hh💯15), hb_function_sortedness_t::NOT_SORTED, nullptr>' does not return a reference [-Werror,-Wrange-loop-analysis]
    for (const VertOriginMetric& _ : it)
                                 ^
./hb-ot-vorg-table.hh:113:17: note: in instantiation of function template specialization 'OT::VORG::serialize<hb_map_iter_t<hb_filter_iter_t<hb_sorted_array_t<const OT::VertOriginMetric>, const hb_set_t *, OT::HBGlyphID OT::VertOriginMetric::*, nullptr>, (lambda at ./hb-ot-vorg-table.hh💯15), hb_function_sortedness_t::NOT_SORTED, nullptr>, nullptr>' requested here
    vorg_prime->serialize (c->serializer, it, defaultVertOriginY);
                ^
./hb-ot-vorg-table.hh:87:10: note: use non-reference type 'OT::VertOriginMetric'
    for (const VertOriginMetric& _ : it)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-09-21 17:52:01 +04:30
Ebrahim Byagowi 6e42a418c8 Minor, turn more of hb_apply to for each 2019-09-21 17:52:01 +04:30
Ebrahim Byagowi 385741d565 [cmap] Turn hb_apply into foreach where possible 2019-09-21 15:33:02 +04:30
Ebrahim Byagowi 1023c2cc6d [cmap] minor 2019-09-21 15:33:02 +04:30
Ebrahim Byagowi ead46eefe3 minor, use internal API instead public hb_set_has 2019-09-21 15:33:02 +04:30
Ebrahim Byagowi d8af4e7701 [cmap] minor, turn 8 spaces to tab 2019-09-21 15:33:02 +04:30
Qunxin Liu 4315666283 [subset] updates according to review comments 2019-09-20 07:55:11 +09:00
Qunxin Liu 2583afa0eb [subset] subsetting cmap14 2019-09-20 07:55:11 +09:00
Qunxin Liu 078ddbd0f6 [subset] glyph closure for CMAP14 2019-09-20 07:55:11 +09:00
Ebrahim Byagowi bbe878006d Avoid bitwise negate of enum value
Fixes this -fno-sanitize-recover=undefined fail,

hb-ot-map.hh:188:1: runtime error: load of value 4294967294, which is not a valid value for type 'hb_ot_map_feature_flags_t'
    #0 0x7f62bfa9b227 in operator&=(hb_ot_map_feature_flags_t&, hb_ot_map_feature_flags_t) /home/ebrahim/Desktop/harfbuzz/src/./hb-ot-map.hh:188:1
    #1 0x7f62bfa9b227 in hb_ot_map_builder_t::compile(hb_ot_map_t&, hb_ot_shape_plan_key_t const&) /home/ebrahim/Desktop/harfbuzz/src/hb-ot-map.cc:194
    #2 0x7f62bface650 in hb_ot_shape_planner_t::compile(hb_ot_shape_plan_t&, hb_ot_shape_plan_key_t const&) /home/ebrahim/Desktop/harfbuzz/src/hb-ot-shape.cc:108:7
    #3 0x7f62bfacec1e in hb_ot_shape_plan_t::init0(hb_face_t*, hb_shape_plan_key_t const*) /home/ebrahim/Desktop/harfbuzz/src/hb-ot-shape.cc:225:11
    #4 0x7f62bfae1318 in hb_shape_plan_create2 /home/ebrahim/Desktop/harfbuzz/src/hb-shape-plan.cc:232:7
    #5 0x7f62bfae1d2a in hb_shape_plan_create_cached2 /home/ebrahim/Desktop/harfbuzz/src/hb-shape-plan.cc:489:33
    #6 0x7f62bfae2527 in hb_shape_full /home/ebrahim/Desktop/harfbuzz/src/hb-shape.cc:135:33
    #7 0x55ed360b6588 in shape_options_t::shape(hb_font_t*, hb_buffer_t*, char const**) /home/ebrahim/Desktop/harfbuzz/util/./options.hh:242:10
    #8 0x55ed360b5d9c in shape_consumer_t<output_buffer_t>::consume_line(char const*, unsigned int, char const*, char const*) /home/ebrahim/Desktop/harfbuzz/util/./shape-consumer.hh:67:19
    #9 0x55ed360b549f in main_font_text_t<shape_consumer_t<output_buffer_t>, 2147483647, 0>::main(int, char**) /home/ebrahim/Desktop/harfbuzz/util/./main-font-text.hh:81:16
    #10 0x55ed360b4e23 in main /home/ebrahim/Desktop/harfbuzz/util/hb-shape.cc:189:17
    #11 0x7f62bf104ee2 in __libc_start_main (/usr/lib/libc.so.6+0x26ee2)
    #12 0x55ed3608f7ad in _start (/home/ebrahim/Desktop/harfbuzz/util/.libs/lt-hb-shape+0xd7ad)
2019-09-18 23:16:52 +04:30
Ebrahim Byagowi e6909ee58d minor 2019-09-18 23:16:52 +04:30
Ebrahim Byagowi bb41b74fd1 Don't rely on undefined left shift of negative value behavior
Fixes this -fno-sanitize-recover=undefined check,

hb-ft.cc:869:27: runtime error: left shift of negative value -16384
    #0 0x7ff8f47da843 in hb_ft_font_set_funcs /home/ebrahim/Desktop/harfbuzz/src/hb-ft.cc:869:27
    #1 0x55f20a66c7d6 in font_options_t::get_font() const /home/ebrahim/Desktop/harfbuzz/util/options.cc:731:3
    #2 0x55f20a668c1f in shape_consumer_t<output_buffer_t>::init(hb_buffer_t*, font_options_t const*) /home/ebrahim/Desktop/harfbuzz/util/./shape-consumer.hh:47:42
    #3 0x55f20a668441 in main_font_text_t<shape_consumer_t<output_buffer_t>, 2147483647, 0>::main(int, char**) /home/ebrahim/Desktop/harfbuzz/util/./main-font-text.hh:75:14
    #4 0x55f20a667f91 in main /home/ebrahim/Desktop/harfbuzz/util/hb-shape.cc:180:21
    #5 0x7ff8f3df7ee2 in __libc_start_main (/usr/lib/libc.so.6+0x26ee2)
    #6 0x55f20a6427ad in _start (/home/ebrahim/Desktop/harfbuzz/util/.libs/lt-hb-shape+0xd7ad)
2019-09-18 23:16:52 +04:30
Ebrahim Byagowi b73313ade7 Don't seek of out-of-bound value even if the result is not used
Fixes this -fno-sanitize-recover=undefined fail,

/set/iter: hb-algs.hh:1016:60: runtime error: index 4294967295 out of bounds for type 'unsigned long long const[8]'
    #0 0x4d1e09 in hb_vector_size_t<unsigned long long, 64u>::operator[](unsigned int) const /home/user/code/harfbuzz/src/./hb-algs.hh:1016:60
    #1 0x4d8b5f in hb_set_t::page_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:139:53
    #2 0x4d0ada in hb_set_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:602:36
    #3 0x4cd76f in hb_set_previous /home/user/code/harfbuzz/src/hb-set.cc:494:15
    #4 0x4ca8af in test_set_iter /home/user/code/harfbuzz/test/api/test-set.c:310:3
    #5 0x7f3a4f3e0f49  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49)
    #6 0x7f3a4f3e0e7a  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a)
    #7 0x7f3a4f3e1121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121)
    #8 0x7f3a4f3e1140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140)
    #9 0x4c8894 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10
    #10 0x4c8894 in main /home/user/code/harfbuzz/test/api/test-set.c:408:10
    #11 0x7f3a4e3d2b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
    #12 0x41e7d9 in _start (/home/user/code/harfbuzz/test/api/test-set+0x41e7d9)
2019-09-18 23:16:52 +04:30
Ebrahim Byagowi d8af9ee017 Don't rely on nullptr deref recovery
Fixes this -fno-sanitize-recover=undefined fail,

/types/language: hb-common.cc:385:20: runtime error: member access within null pointer of type 'const struct hb_language_impl_t'
    #0 0x4caa34 in hb_language_to_string /home/user/code/harfbuzz/src/hb-common.cc:385:20
    #1 0x4c9be8 in test_types_language /home/user/code/harfbuzz/test/api/test-common.c:205:3
    #2 0x7f9557e72f49  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49)
    #3 0x7f9557e72e7a  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a)
    #4 0x7f9557e73121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121)
    #5 0x7f9557e73140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140)
    #6 0x4c88a3 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10
    #7 0x4c88a3 in main /home/user/code/harfbuzz/test/api/test-common.c:224:10
    #8 0x7f9556e64b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
    #9 0x41e7d9 in _start (/home/user/code/harfbuzz/test/api/test-common+0x41e7d9)
2019-09-18 23:16:52 +04:30
Ebrahim Byagowi bfb155a5f1 Don't call memset when length is zero
Fixes this -fno-sanitize-recover=undefined check,

/buffer/positions/empty: hb-buffer.cc:327:11: runtime error: null pointer passed as argument 1, which is declared to never be null

/usr/include/string.h:60:62: note: nonnull attribute specified here
    #0 0x4cf31c in hb_buffer_t::clear_positions() /home/user/code/harfbuzz/src/hb-buffer.cc:327:3
    #1 0x4d4dd4 in hb_buffer_get_glyph_positions /home/user/code/harfbuzz/src/hb-buffer.cc:1418:13
    #2 0x4cb553 in test_buffer_positions /home/user/code/harfbuzz/test/api/test-buffer.c:305:3
    #3 0x7f324187bf49  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49)
    #4 0x7f324187be7a  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a)
    #5 0x7f324187be7a  (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a)
    #6 0x7f324187c121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121)
    #7 0x7f324187c140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140)
    #8 0x4c8bd3 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10
    #9 0x4c8bd3 in main /home/user/code/harfbuzz/test/api/test-buffer.c:884:10
    #10 0x7f324086db96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
    #11 0x41e919 in _start (/home/user/code/harfbuzz/test/api/test-buffer+0x41e919)
2019-09-18 23:16:52 +04:30
Ebrahim Byagowi c930ae2bd8 Avoid stdint.h in Kernel module compiles 2019-09-17 20:58:32 +04:30
Ebrahim Byagowi 412d6cac3a Extract an avoid errno compile flag 2019-09-17 20:58:13 +04:30
Ebrahim Byagowi 8a16d6f1c1
[doc] fix minor typo 2019-09-15 20:43:33 +04:30
Ebrahim Byagowi f3214df6f6 [coretext] Fix double promotion warnings by making casts explicit 2019-09-14 11:55:53 +04:30
Ebrahim Byagowi 6e4736a3c5 [name] Undef entry_{index,score} to avoid collision in amalgam builds 2019-09-14 11:55:53 +04:30
Ebrahim Byagowi d512087e4d Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
2019-09-14 11:55:53 +04:30
Behdad Esfahbod 229ef1d29d Rename Fixed to HBFixed
Fixes(!!) https://github.com/harfbuzz/harfbuzz/issues/1966
2019-09-10 10:31:07 -07:00
Behdad Esfahbod 170b5dd856 [aat] Minor 2019-09-09 10:52:54 -04:00
Behdad Esfahbod a0695687eb [aat] Minor 2019-09-09 10:52:54 -04:00
Ebrahim Byagowi 4905a2198b [number] Add static to hb-number-parser.hh functions 2019-09-09 13:14:42 +04:30
Ebrahim Byagowi 30e5cdfbf1
[number] Optimize _pow10 constants (#1963) 2019-09-09 00:28:16 +04:30
Behdad Esfahbod 3f2cdf07a4 Change HB_VAR_ARRAY to 1 again
To fix MSVC bots, while I work on changing this to 0 permanently.
2019-09-08 15:08:02 -04:00
Ebrahim Byagowi 39cf8e21be
[number] Add overflow checks used to be done in parse_bcd
Which were removed in 1083df8
2019-09-07 15:27:30 +04:30
Ebrahim Byagowi 47d82713a1 Replace strtod with a ragel implementation
Use a ragel based number parser when strtod_l couldn't be found
as libc's strtod may is locale sensetivity which we need to not.
2019-09-07 15:02:52 +04:30
Ebrahim Byagowi 80613e5b9e
Minor, remove unused header 2019-09-07 14:25:54 +04:30
Behdad Esfahbod 5902198cee [kerx] Fix offset issue in kern format 2
Fixes tests with HB_VAR_ARRAY != 1, as done in previous commit.
2019-09-06 21:36:31 -04:00
Behdad Esfahbod 861547d531 Change HB_VAR_ARRAY from 1 to 0
Going to see which compilers it breaks and special-case those...
2019-09-06 16:55:00 -04:00
Behdad Esfahbod 0e294c455e Rename VAR to HB_VAR_ARRAY 2019-09-06 16:54:27 -04:00
Behdad Esfahbod c379faed2b Fix a few struct size declarations
Was wrong.  As excercised by defining VAR to other than 1 in hb.hh.
2019-09-06 16:41:12 -04:00
Behdad Esfahbod 3aceee2527 Revert "[null] Silence undefined-behavior complaints with too-small null bytes"
This reverts commit 911c76abcd.

Broke tests.  I'm not sure I understand why.  At any rate, this was a
bad way to fix.  I'll look into understanding as well as better fix.
2019-09-06 12:17:18 -04:00
Behdad Esfahbod 911c76abcd [null] Silence undefined-behavior complaints with too-small null bytes
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1577584
2019-09-06 11:53:11 -04:00
Behdad Esfahbod 3c81246f66 [subset] Use newer iter tools in SinglePosFormat1 2019-09-04 11:28:40 -04:00
Behdad Esfahbod 9510e918f7 [iter] Partialize hb_zip() 2019-09-04 11:28:40 -04:00
Ebrahim Byagowi cad698568a Use roundf to fix cast to int difference of msys2 w64 2019-09-04 11:18:37 +04:30
Ebrahim Byagowi 1083df8b80 Use hb_parse_double in CFF::dict_opset_t::parse_bcd 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 57f88e11d4 [number] Turn hb_parse_float into hb_parse_double 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 65690b5a4b [number] Add whole buffer check and test it 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 3661eb6105 Don't check null terminaion of source in hb_codepoint_parse
This isn't what intended originally, just checking if consumed
all the buffer is enough.
2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 3a16272750 [test] resolve msvc complain on signedness comparing 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 005389beb5 Use hb_parse_uint in deserializer token parser 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 3d5b1df7ab [number] Add test 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi b5e6805ee7 [number] Minor tweak on parser related codes 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi e2cecf1f34 [number] Remove parsing code duplication of the calls using lambda 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi a77bb7eb41 Move hb_codepoint_parse to hb_parse_uint 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi 43372fbb5a Merge and aggregate number parsing logics to form hb-number 2019-09-04 02:04:09 +04:30
Ebrahim Byagowi d50d2fcbc7 Fallback if roundf didn't exist, like in dietlibc (#1953) 2019-09-02 19:32:05 -05:00
Ebrahim Byagowi d3b984d379 Revert in-house pow10 (d80a3ea) and fix oss-fuzz/16922
Probably can be fixed but merging it was wrong so let's revert.
2019-09-02 18:28:03 +04:30
Ebrahim Byagowi 41d6e95b0d [subset] Use internal API of hb_set_t 2019-09-02 01:58:37 +04:30
Ebrahim Byagowi 8ccf328d54 [subset] Run once for a tag 2019-09-02 01:09:41 +04:30
Khaled Hosny 0954c8f7a0 [ft] Prefer symbol cmap subtable if found (#1948)
Similar to commit d304d60e4d for ot-font.
2019-09-01 10:09:07 -05:00
Ebrahim Byagowi d80a3ea983
[cff] Implement in-house power of 10
A minimal power only for natural numbers exponents of ten, for portability.

Found the idea in Tcl/Tk but wrote it myself after weeks and it turned out
being a different implementation, reverse direction, constexpr, etc.
2019-09-01 14:05:16 +04:30
Ebrahim Byagowi f441a7c008 Don't allow reference blob be accessed using empty tag in hb_face_reference_table (#1947) 2019-08-31 16:48:09 -05:00
Behdad Esfahbod c9eb913f4c [iter] Simplify hb_chop() 2019-08-31 15:21:02 -05:00
Behdad Esfahbod 67ec9fa9e4 [iter] Add hb_chop() 2019-08-31 14:51:49 -05:00
Behdad Esfahbod 5828d8e83c [iter] Add hb_take() specialization for arrays 2019-08-31 14:36:44 -05:00
Behdad Esfahbod 398b296f3b [iter] Add hb_len() 2019-08-31 12:44:24 -05:00
Behdad Esfahbod 875131d478 [iter] Add hb_take() 2019-08-31 12:42:52 -05:00
Behdad Esfahbod 1f88dae9f5 [iter] Make iota() accept invokable for increasing to next item 2019-08-31 12:24:56 -05:00
Behdad Esfahbod 3bc86fb237 [algs] Fix hb_inc/dec signature 2019-08-31 12:24:56 -05:00
Behdad Esfahbod b1378d8a21 [iter] Add hb_repeat() 2019-08-31 12:24:56 -05:00
Behdad Esfahbod 966a18b92a [iter] Remove some && 2019-08-31 12:24:56 -05:00
Behdad Esfahbod de45775c37 [iter] Use hb_ridentity instead of lazy + 2019-08-31 12:24:56 -05:00
Behdad Esfahbod ce4d63beec [iter] Separate hb_iota implementation from hb_range 2019-08-31 12:24:56 -05:00
Behdad Esfahbod 814dc3cbe5 [iter] Rename
Moving towards making iota useful for non-integers.
2019-08-31 12:24:56 -05:00
Behdad Esfahbod 2d5643aed4 [algs] Add hb_inc() and hb_dec()) 2019-08-31 12:24:56 -05:00
Behdad Esfahbod 7eafe94705 Revert "[array] Add chop()"
This reverts commit 545fe9d9f0.

Breaks gcc 4.8 and MSVC all versions.

Will add hb_chop() that works on all iterators instead.
2019-08-31 12:24:56 -05:00
Ebrahim Byagowi 28c8dcb53f
[subset] minor 2019-08-31 12:27:14 +04:30
Behdad Esfahbod 545fe9d9f0 [array] Add chop()
Takes n, and returns iterator of iterators that contain up to
n items each.  Basically cuts the array into subarrays of size n.
The last sub-array might contain fewer.

Ideally this should become a generic iter tool, not array-specific,
so we can use it in GPOS to chop a value matrix into rows and elements.
2019-08-29 15:48:21 -07:00
Behdad Esfahbod c72589f13f [iter] Change item_size to get_item_size()
By moving access to hb_static_size(Type) into a function instead of
a class-const, we can refer to iter types of incomplete types, which
come handy when a method of hb_array_t wants to return iterator
of hb_array_t.  That kind of stuff.   Next commit needs this to
build on clang...
2019-08-29 15:45:21 -07:00
Behdad Esfahbod d58e248df6 [array] Add truncate() method 2019-08-29 15:23:48 -07:00
Behdad Esfahbod a06edf1430 [array] Use injected class name more 2019-08-29 15:21:18 -07:00
Behdad Esfahbod e0e0c8c109 Minor 2019-08-29 14:58:16 -07:00
qxliu76 0313ef86e3 bug fix in optimizing coverage table format (#1942)
We are comparing number of shorts, NOT number of bytes.
2019-08-29 14:09:05 -07:00
Behdad Esfahbod 38f95baf6b [subset] in SingleSubst subsetting, check for substitute in glyphset
That matches what fonttools does and allows for specifying exact
glyphset for subset.
2019-08-29 13:40:46 -07:00
Ebrahim Byagowi 8106ba7f88 [glyf] Reapply use of hb_bytes_t.as<GlyphHeader> () 2019-08-29 20:33:38 +04:30
Ebrahim Byagowi 9e80fc6836 [glyf] Reapply common moving logic to GlyphHeader struct 2019-08-29 20:17:50 +04:30
Ebrahim Byagowi 852c9aa0e3 [glyf] Reapply style fixes 2019-08-29 20:12:53 +04:30
Ebrahim Byagowi 9ff32b79b3 Merge remote-tracking branch 'upstream/master' into glyf-rebase 2019-08-29 19:53:18 +04:30
Ebrahim Byagowi 499029644f
[gsub] Fix clang's semicolon complains 2019-08-29 15:09:39 +04:30
Ebrahim Byagowi 875985cd48
[subset] Don't allow malicious fonts to insert unlimited table headers
Fixes https://crbug.com/oss-fuzz/16810
2019-08-29 14:51:22 +04:30
Behdad Esfahbod dc9222b1dd [subset] Implement AlternateSubst subsetting 2019-08-28 15:38:46 -07:00
Behdad Esfahbod 23681b6da4 Minor 2019-08-28 15:30:37 -07:00
Behdad Esfahbod 33c8e2303c [subset] Implement MultipleSubst subsetting 2019-08-28 15:25:55 -07:00
Behdad Esfahbod 5c43a7ba7e [GSUB] Use dagger in Ligature::intersects() 2019-08-28 15:10:38 -07:00
Behdad Esfahbod b8c642c1f5 Minor 2019-08-28 15:06:45 -07:00
Behdad Esfahbod dc2c9aa0c3 Rename 2019-08-28 15:05:49 -07:00
Behdad Esfahbod bc5ef765a8 [subset] Subset ligature substitutes!
Test with:

$ ./hb-subset -o out.ttf NotoSansArabic-Regular.ttf --drop-tables=  سلام && ./hb-view out.ttf سلام
2019-08-28 14:52:13 -07:00
Behdad Esfahbod 42d887bd22 Beef up HeadlessArrayOf<>
Should be merged with ArrayOf...
https://github.com/harfbuzz/harfbuzz/issues/1937
2019-08-28 14:47:14 -07:00
Behdad Esfahbod 3ca809e362 Add ArrayOf::pop() 2019-08-28 13:49:35 -07:00
Behdad Esfahbod 307bd6d79f Add arithmetic operators to IntType<> 2019-08-28 13:49:17 -07:00
Behdad Esfahbod 2e1d00c85b [debug] Minor 2019-08-28 13:49:04 -07:00
Behdad Esfahbod 062cad5e28 Add ArrayOf::serialize_append 2019-08-28 13:48:55 -07:00
Adrian Wong b66076812d Adjustments to the generated Indic table output (#1936)
* Add empty parentheses after print call

* Minor: newlines. Move #pragma pop down one; #endif up one

* Adjust #define ISC/IMC output

* Regenerate Indic table
2019-08-28 04:31:27 -07:00
Ebrahim Byagowi 4ef08dbce1 Use hb_bytes_t as<T> in hb_blob_t 2019-08-27 17:38:09 +04:30
Ebrahim Byagowi dce42cef2b [glyf] Move GlyphHeader::from_bytes to hb_bytes_t, introduce .as<T> () 2019-08-27 17:38:09 +04:30
Ebrahim Byagowi 6e82d59b4f
[glyf] Revert the way indexToLocFormat is set 2019-08-27 12:33:42 +04:30
Ebrahim Byagowi 88e9db19d2
[subset] Remove subset table size assertion
As https://github.com/harfbuzz/harfbuzz/pull/1930#issuecomment-525036802
2019-08-27 02:44:26 +04:30
Ebrahim Byagowi a0b4ac4dce Turn 8 spaces to tab across the project
According to the current code style of the project
2019-08-27 02:40:41 +04:30
Ebrahim Byagowi 269a120f13
[subset] Raise the bar in new vs old table size
https://crbug.com/oss-fuzz/16740

This is actually an interesting thing that {h,v}mtx allocates as
much as a font pretends to have glyphs but the solution is not
that obvious as regular fonts can have less than actually containing
metrics in their {h,v}mtx. This change raises the bar to consider this
hmtx 4 byte for every glyph case.

Initially we wanted to just find things allocating crazy amount of
memory but having the assert has led to interesting findings also
so let's don't remove the assert and see what we can find elsewhere.
2019-08-25 20:37:00 +04:30
Ebrahim Byagowi 2f8e823331
[glyf] minor 2019-08-25 12:37:40 +04:30
Ebrahim Byagowi 07e467a30e [glyf] Move GlyphHeader size checking to a static method 2019-08-25 01:10:37 +04:30
Ebrahim Byagowi 139d14dc89 [glyf] Move GlyphHeader related logics to its, making its fields protected 2019-08-24 17:50:25 +04:30
Ebrahim Byagowi d57819cbdb [glyf] format source 2019-08-24 17:00:54 +04:30
Ebrahim Byagowi 2aef3013f3 [subset] Consider instruction length place itself
Now fixes https://crbug.com/oss-fuzz/16639 completely
2019-08-24 16:11:21 +04:30
Ebrahim Byagowi 922898c814 [subset] Fail on table grow more than 16x+4096 2019-08-24 16:11:21 +04:30
Ebrahim Byagowi 28aba780c4 [subset] Fix blob leak of _subset2 when returns early
Fixes https://crbug.com/oss-fuzz/16639
2019-08-24 16:11:21 +04:30
Behdad Esfahbod 541f3c2d7d [debug] Fix extra semicolon issue
https://github.com/harfbuzz/harfbuzz/issues/1923
2019-08-23 12:25:58 -07:00
Behdad Esfahbod 4dcaca8411 Whitespace 2019-08-23 12:24:15 -07:00
Behdad Esfahbod 569426d861 [debug] Fix build with HB_DEBUG
Fixes https://github.com/harfbuzz/harfbuzz/issues/1923
2019-08-23 11:54:39 -07:00
Behdad Esfahbod be97e9d678 2.6.1 2019-08-22 15:52:24 -07:00
Behdad Esfahbod d304d60e4d [ot-font] Prefer symbol cmap subtable if found
Fixes https://github.com/harfbuzz/harfbuzz/issues/1918

Hopefully doesn't break anyone...
2019-08-21 12:30:22 -07:00
Ebrahim Byagowi 2a3d4987a7
Remove hb_directwrite_shape_experimental_width public API
I had specially exposed the API as I didn't know how to embed harfbuzz
easily elsewhere but now with harfbuzz.cc it has become very easy
and I don't like to see its use anywhere as it has a bad naming and
its Kashida adding is bogus and only useful to check where it should
be added, not visually useful however.
2019-08-21 03:02:01 +04:30
Behdad Esfahbod aaa85931f3 [font] Update multipliers when creating sub_font
Fixes https://github.com/harfbuzz/harfbuzz/issues/1910
2019-08-20 13:06:10 -07:00
Ebrahim Byagowi bbad1b8298
[trak] minor, use roundf instead round to normalize the use
The change to `round` wasn't intended
2019-08-20 14:46:48 +04:30
Ebrahim Byagowi 37de38adea
Merge branch 'master' into remove-coretext-96dpi-assumption 2019-08-20 12:59:33 +04:30
Behdad Esfahbod 5ee1e451cf Minor touch-up for recent change 2019-08-19 14:23:17 -07:00
Ebrahim Byagowi 3348992844 [avar] Implement inverse map, unmap 2019-08-19 14:22:15 -07:00
Ebrahim Byagowi 981f5a54c3 [fvar] Implement inverse normalize, unnormalize 2019-08-19 14:22:15 -07:00
Behdad Esfahbod dcb4cd400f Minor 2019-08-19 11:35:37 -07:00
Ebrahim Byagowi ca54440324
Remove continuous development helper script
Not have used it personally for a long time, lets remove it
2019-08-18 11:58:04 +04:30
Khaled Hosny 40aef1b473 [ot-shape] Keep horizontal_features array sorted 2019-08-16 02:17:32 +02:00
Khaled Hosny da5118da77 [ot-shape] Enable abvm/blwm features by default
Core Text seems to apply them to Latin text, but Uniscribe doesn’t.

See https://github.com/harfbuzz/harfbuzz/pull/1908#issuecomment-521819343
2019-08-16 02:17:32 +02:00
Khaled Hosny 2164bd6f29
[ot-shape] Enable dist feature by default (#1908)
Fixes https://github.com/harfbuzz/harfbuzz/issues/1907
2019-08-16 00:28:41 +02:00
Ebrahim Byagowi bc27f86ffe
Move HB_NO_VAR to a better place in hb-font.cc
Needed for other works
2019-08-14 22:37:00 +04:30
Ebrahim Byagowi 1cc844da66
minor
Use hb_font_t coords directly
2019-08-14 19:10:02 +04:30
Ebrahim Byagowi 6a194b6876
Minor, remove trailing spaces in hb-font.{cc,h} as .editorconfig 2019-08-14 18:49:57 +04:30
Ebrahim Byagowi 3ae44645d6 Fix caret_count value when AAT is disabled
Set caret_count to zero as that is what we want to happen inside lcar when
there is no result.
2019-08-14 17:58:30 +04:30
Ebrahim Byagowi a5aa67b9f2 [lcar] Use multiformat convention 2019-08-14 17:58:30 +04:30
Ebrahim Byagowi bfffe85dd7 [opbd] Use multiformat convention on the table 2019-08-14 15:45:57 +04:30
Ebrahim Byagowi d6206dbcc4 [opbd] Turn OpticalBounds fields to FWORD 2019-08-14 15:45:57 +04:30
Behdad Esfahbod 6461143b44 2.6.0 2019-08-13 22:20:54 -07:00
Behdad Esfahbod e56d4ff43b Rename hb_ot_meta_get_entries() to +hb_ot_meta_get_entry_tags() 2019-08-13 21:02:47 -07:00
Behdad Esfahbod aade9b70aa [pool] Fix alignment assertion
I *think* it should fix https://github.com/harfbuzz/harfbuzz/issues/1901

Ie. if on a system, alignof(void*) < sizeof(void*)...
2019-08-13 16:10:03 -07:00
Ebrahim Byagowi 60d9f00975
Implement opbd table parsing
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6opbd.html
2019-08-11 16:15:19 +04:30
Ebrahim Byagowi 8762676e34
[os2] Replace null pool addr compare by checking vital fields (#1896) 2019-08-10 01:26:55 +04:30
Ebrahim Byagowi 1f926fb2b6 [fvar] Use roundf instead hardcoding round logic 2019-08-09 11:05:48 -07:00
Ebrahim Byagowi 60485ab047
[os2] Get defined lower/upper optical size 2019-08-07 23:23:06 +04:30
Qunxin Liu 321d5588d4 [subset] Add subsetting for GPOS Lookup Type 1: Single Adjustment Positioning Subtable 2019-08-06 14:06:35 -07:00
Qunxin Liu 37572882e7 [subset] cmap table to use _subset2 and new iterator frameworks 2019-08-05 11:26:34 -07:00
Ebrahim Byagowi 5848c890cf
[metrics] Add metrics tags documentation 2019-08-03 14:19:28 +04:30
Ebrahim Byagowi 4d1872b8e0
[base] Add documentation for baseline tags from ot spec 2019-08-03 14:06:46 +04:30
Ebrahim Byagowi bbeee84a7f
[meta] Add metadata tags documentation from ot spec 2019-08-03 13:47:55 +04:30
Michiharu Ariza 6b3e093911 Merge branch 'master' into var-subset 2019-07-31 16:04:48 -07:00
Michiharu Ariza 07f27accb9 Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset 2019-07-31 14:58:53 -07:00
Ebrahim Byagowi 521c7013ab
[cpal] revert port to dagger
It has a different semantic, maybe we should just do a zero memset,
letting Behdad to decide.
2019-07-30 18:10:40 +04:30
Ebrahim Byagowi 8014ce198a
[cpal] port to dagger (#1887) 2019-07-30 17:31:34 +04:30
Ebrahim Byagowi d67201da5a
[colr] minor 2019-07-30 17:20:18 +04:30
Ebrahim Byagowi e5cf9718c0
[colr][feat][meta] Port sub_array iteration to dagger (#1868) 2019-07-30 04:44:23 +04:30
Ebrahim Byagowi 9f2b4956b4
[base] Add hb_ot_layout_get_baseline API 2019-07-30 04:42:51 +04:30
Ebrahim Byagowi 40a4b6ddbd [var] Add a new API, hb_font_set_var_named_instance 2019-07-29 16:23:47 -07:00
Ebrahim Byagowi b6a2281f1a [meta] Make values match their enum type naming 2019-07-30 03:48:23 +04:30
Ebrahim Byagowi 20072a2eca [metrics] Make values match their enum type naming 2019-07-30 03:48:23 +04:30
Ebrahim Byagowi ed2965a852
[base] Don't use enum inside the table 2019-07-30 03:34:10 +04:30
Ebrahim Byagowi 388fa9b326 [lcar] flip for and switch position 2019-07-29 15:19:33 -07:00
blueshade7 f0dd724c1e Merge branch 'master' into subset-varstore 2019-07-29 14:21:05 -07:00
blueshade7 6e3bfecf35 Merge branch 'master' into var-subset 2019-07-29 12:25:43 -07:00
Ebrahim Byagowi 4e1da6bb61 [metrics] Rename hb_ot_metrics_t to hb_ot_metrics_tag_t 2019-07-29 22:43:09 +04:30
Ebrahim Byagowi 2c2a2b97db [meta] Rename hb_ot_meta_t to hb_ot_meta_tag_t 2019-07-29 22:43:09 +04:30
Behdad Esfahbod 7bcc5dfa97 [iter] Fix accumulate to accept const types 2019-07-28 20:55:50 -07:00
Ebrahim Byagowi 87454c447d
[base] fix logic 2019-07-28 20:46:47 +04:30
Ebrahim Byagowi 69655d5bc3
[base] minor 2019-07-28 20:39:20 +04:30
Ebrahim Byagowi d9c44e7239
[base] Check if the returned base_coord is valid 2019-07-28 20:35:32 +04:30
Ebrahim Byagowi 53853c044a
[meta] minor 2019-07-28 20:23:48 +04:30
Ebrahim Byagowi ed126d8c37
[base] fix build 2019-07-28 20:21:59 +04:30
Ebrahim Byagowi c7b22b96cc
[base] minor 2019-07-28 19:46:57 +04:30
Ebrahim Byagowi a157342fce
[base] Fix use of bsearch 2019-07-28 18:54:13 +04:30
Ebrahim Byagowi eddd456532
[base] minor spacing 2019-07-28 02:21:54 +04:30
Behdad Esfahbod 0a18efd766 Minor 2019-07-26 14:34:26 -07:00
Ebrahim Byagowi d3d99f8bb6
[metrics] Expose raw OS2/HHEA asc/dsc values using private tags (#1867) 2019-07-26 16:46:04 +04:30
Ebrahim Byagowi aaffe41094 [meta] minor, simplify iterator 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 62932c14bd [meta] Rename ot-metadata to ot-meta per review 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 821d9e9034 Use .sub_array for DataMap tags iteration 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi a250af98ae [meta] Add max value to hb_ot_metadata_t 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 80e246a1f2 [meta] Add a test program for metadata 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi bc65ebbce7 [meta] hb_ot_metadata_get_entries, tags iteration API 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi 3ac03bd67c [meta] New API, hb_ot_metadata_reference_entry for fetching meta entries 2019-07-25 17:49:51 -07:00
Ebrahim Byagowi aab8e08487
minor spacing fix (#1869) 2019-07-26 02:19:22 +04:30
Ebrahim Byagowi d791446a93
[feat] minor 2019-07-26 02:12:06 +04:30
Ebrahim Byagowi a744fdc6c8
Add _MAX_VALUE to hb_ot_metrics_t (#1861) 2019-07-25 14:49:02 +04:30
Ebrahim Byagowi 069872c51b
minor 2019-07-25 14:27:43 +04:30
Ebrahim Byagowi 737eb85a4e
Add _MAX_VALUE to disabled baseline types enum 2019-07-25 14:26:30 +04:30
Ebrahim Byagowi dd9a0ed3f0
Replace 0x7FFFFFFFu in enums with HB_TAG_MAX_SIGNED 2019-07-24 00:47:19 +04:30
blueshade7 5988ab8a4e Merge branch 'master' into var-subset 2019-07-22 14:36:16 -07:00
Ebrahim Byagowi 636ae42237
minor, comment out meta table in list till its use 2019-07-22 22:50:21 +04:30
Khaled Hosny 04c11a19b7
Merge pull request #1851 from khaledhosny/fix-sbix-extents
Fix sbix glyph extents
2019-07-22 16:44:47 +02:00
Ebrahim Byagowi 41ab56e095
Implement meta table parsing 2019-07-22 18:46:52 +04:30
Ebrahim Byagowi a51aa951b5
[metrics] Fix _get_variation API to works with actual coord values 2019-07-22 18:35:55 +04:30
Behdad Esfahbod 77141dff7d [metrics] _-prefix internal symbol 2019-07-22 07:48:32 -04:00
Behdad Esfahbod 89228ccb9a Fix warning on IBM compilers
Fixes https://github.com/harfbuzz/harfbuzz/issues/1852
2019-07-22 07:07:37 -04:00
Khaled Hosny c9796d15e1 Fix sbix glyph extents
* The ‘height’ needs to be negated since the API returns “distance from
  top to bottom side”.
* Similarly, the ‘y_offset‘ needs to be added to the height to get the
  ‘y_bearing’, since sbix’s offset is “the point in the glyph relative
  to its lower-left corner which corresponds to the origin” while
  ‘y_bearing’ is the “top side of glyph from origin”.

With these changes the sbix glyph metrics return values similar to other
tables, as they were otherwise unusable.
2019-07-22 05:42:34 +02:00
Ebrahim Byagowi 759f3bd486
[metrics] Don't use metrics API in _common
As it is exposed with a different condition
2019-07-22 02:06:07 +04:30
Ebrahim Byagowi eb8bd2f7ec Add hb_gdi_face_create API
Based on Konstantin Ritt work posted on mailing list
2019-07-21 14:22:19 -07:00
Ebrahim Byagowi 3d03bb84d4
[metrics] minor, tweak comment 2019-07-21 12:38:04 +04:30
Behdad Esfahbod e540d402f6 [docs] Minor 2019-07-20 12:09:34 -07:00
Ebrahim Byagowi 00e13985fb Revert hhea fallback to OS/2 to its reverse way
As searching number of hhea having fonts beats the number of OS/2
having ones in macOS 10.14.2
2019-07-20 12:09:26 -07:00
Ebrahim Byagowi c13ef9cc64 Bring back asc/desc abs logic used to be in hmtx table 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi 772e62688c Make HB_TINY builds work again by separating the always needed part 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi cb70433740 Merge _get_position_internal into _get_position 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi ac3518af58 Define post table only when used 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi 471f798ace Merge ot-metrics-internal.cc with ot-metrics now that isn't needed in subset 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi 29444d7e9f Don't cache ascender/descender metrics 2019-07-20 12:09:26 -07:00
Ebrahim Byagowi 5e28c2654d
[doc] minor, improve hb-ot-metrics doc a bit 2019-07-20 14:08:11 +04:30
Ebrahim Byagowi 08b48e89d3 [os2] minor spacing tweaks 2019-07-20 12:53:40 +04:30
Ebrahim Byagowi 54b9ab704d Fallback hhea's ascender/descender to OS2 2019-07-20 12:51:38 +04:30
Behdad Esfahbod ec8dde8142 [metrics] Fall back to hhea if OS2 metrics are empty
Reinstates previous logic, even if it might be unnecessary.
2019-07-19 11:14:20 -07:00
Ebrahim Byagowi 2e5b49d11d
Add HB_NO_METRICS and fix HB_TINY build (#1839) 2019-07-19 11:41:07 +04:30
Behdad Esfahbod 2bd953ff4f [metrics] Fix weird use of xor
I believe that was a try to use one approach as fallback to other.  But
felt wrong.  Just believe what's in OS/2 table to be correct.
2019-07-18 14:25:45 -07:00
Behdad Esfahbod 9675a067bf [ot-metrics] Touch up 2019-07-18 14:16:11 -07:00
Ebrahim Byagowi 87e628436e Implement a simple API for fetching opentype metrics
Fixes https://github.com/harfbuzz/harfbuzz/pull/1432
2019-07-18 14:15:58 -07:00
David Corbett ed67efcc8c Revert "[Myanmar] Prevent reordering between Asat and Dot below"
This reverts commit 1c8654ead4.
2019-07-18 10:42:20 -07:00
blueshade7 a76d8b0d55 Merge commit '504bb17287c978d60a4a515555852465319f74ed' into var-subset 2019-07-17 14:12:06 -07:00
Behdad Esfahbod 6157bbe512 Revert "Revert previous change"
This reverts commit b8e90ca1a1.

Works now.
2019-07-17 11:20:08 -07:00
Behdad Esfahbod 576065b442 [iter] Fix reduce type deduction 2019-07-17 11:19:34 -07:00
Ebrahim Byagowi b8e90ca1a1
Revert previous change
Interestingly all of the bots disagreed with the change and the complain is... weird.
2019-07-17 21:38:19 +04:30
Ebrahim Byagowi ee05627aff
Improve syntax to make out linux-arm64 a little happy
Decided to apply is we did the same on other places however this won't
fix all of its complains
2019-07-17 21:28:25 +04:30
Ebrahim Byagowi 6a6bf7b7bc
Downgrade -Wdeprecated-declarations to warning
Fixes #1834 at least till fix of #1829
2019-07-17 21:22:38 +04:30
Behdad Esfahbod 25e2562fdf [amalgam] Fix redundant-declaration warning/error 2019-07-17 09:35:56 -07:00
Ali Javadi c184180228 Fix C++20 compile warning on implicit capture of this with '=' default capture (#1833)
Happens when compiled with -std=c++2a, the fix just makes the captures explicit to resolve the issue. Just adding this in addition to = doesn't work in C++11.

src/hb-ot-layout-gpos-table.hh:737:18: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture]
              { return (this+_).intersects (glyphs, valueFormat); })
                        ^
src/hb-ot-layout-gpos-table.hh:736:16: note: add an explicit capture of 'this' to capture '*this' by reference
    | hb_map ([=] (const OffsetTo<PairSet> &_)
               ^
                , this
2019-07-16 22:10:24 +04:30
Ebrahim Byagowi 1f94388516
[usp] define atfree callback only if used 2019-07-16 11:24:29 +04:30
blueshade7 68ac767e43 added skip(), get_next_value() to inc_bimap to subset VarStore with retain-gids 2019-07-12 23:02:29 -07:00
blueshade7 670768e5b9 fix inc-bimap for subsetting VarStore with retain-gids 2019-07-12 16:14:23 -07:00
Behdad Esfahbod 4730b350b7 Revert "Update Graphite API to latest (#1215)"
This reverts commit e4e74c2751.

See https://github.com/harfbuzz/harfbuzz/issues/1829
2019-07-12 15:38:35 -07:00
Ebrahim Byagowi 7a9d643c29
Fix unintialized memory read in cmap subset (#1826) 2019-07-11 01:35:07 +04:30
Ebrahim Byagowi a6065d05cf Don't call memcpy when a table is empty 2019-07-10 23:38:07 +04:30
blueshade7 0eef8113d8 retain gids in HVAR so in sync with fontTools
regenerate Comfortaa subset test results
2019-07-09 11:43:59 -07:00
Michiharu Ariza a87fbb872b Merge branch 'var-subset' of https://github.com/harfbuzz/harfbuzz into var-subset 2019-07-09 10:25:54 -07:00
blueshade7 6e35668b45 fix var-subset build 2019-07-09 09:47:54 -07:00
blueshade7 8bf989ea70 update from master 2019-07-08 17:13:29 -07:00
Dominik Röttsches 2e7021da7d Revert "Minor" - revert moving extern "C" definitions in-function
This reverts commit 62e60322cb since it
breaks building HarfBuzz as part of Chromium.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1821.
2019-07-08 10:51:47 +03:00
Behdad Esfahbod f18ea1dd3a [font] Remove division when scaling
Yoohoo.  This seems to be precise enough!  Let's see if it sticks.
I'm asking Dominik to run this in Chrome test suite and report.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1801
2019-07-05 13:56:45 -07:00
Behdad Esfahbod b847769292 [font] Keep font-space to user-space multiplier
Part of https://github.com/harfbuzz/harfbuzz/issues/1801
2019-07-05 13:52:09 -07:00
Behdad Esfahbod df6edcd44c Make face immutable in hb_font_set_face() 2019-07-05 13:45:15 -07:00
Behdad Esfahbod 0d425e1eea [ot-font] Optimize rounding
Part of https://github.com/harfbuzz/harfbuzz/issues/1801

The assumption that compiler optimizes "upem/2" to a shift only
works if upem is unsigned...  Anyway, spoon-feed the compiler.
2019-07-05 13:42:02 -07:00
Simon Sapin ffa736f151 hb_set_previous_range docs: fix presumed copy/paste error 2019-07-05 08:09:25 -07:00
Simon Sapin 641f337380 Docs typo fix: slower → lower 2019-07-05 08:09:09 -07:00
Ebrahim Byagowi 9fea6b4dd4
[amalgam] Use it in cmake port and fix conflicts (#1812) 2019-07-05 18:46:41 +04:30
Behdad Esfahbod b240d701fd [amalgam] Include integration source files as well
Just for those that are normally built into libharfbuzz itself.

Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-03 12:17:57 -07:00
Behdad Esfahbod d515242045 [amalgam] Rename hb.cc to harfbuzz.cc
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-03 12:10:03 -07:00
Behdad Esfahbod 4cb180d227 Revert "Use constexpr to replace passthru_ bools"
This reverts commit c4aa10ebc8.

Broke several compilers... Sigh.  The version without constexpr
didn't fully optimize out the unreachable code on clang.
So, revert it is...
2019-07-02 19:44:18 -07:00
Behdad Esfahbod c4aa10ebc8 Use constexpr to replace passthru_ bools 2019-07-02 19:15:03 -07:00
Behdad Esfahbod 2e48fd0779 Sprinkle constexpr around
Being conservative.  Also not sure it makes any real difference
in our codebase.
2019-07-02 17:55:58 -07:00
Behdad Esfahbod df4448064e Remove unused 'inline' specifier 2019-07-02 17:11:09 -07:00
Behdad Esfahbod 04a4957040 [amalgam] Add hb.cc to git
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 16:19:18 -07:00
Behdad Esfahbod 62e60322cb Minor 2019-07-02 16:08:53 -07:00
Behdad Esfahbod ceb4c212dc [amalgam] Fix UCD issue
This actually makes it build now!

Part https://github.com/harfbuzz/harfbuzz/issues/1809

Keeping open to add tests, CI, etc.
2019-07-02 16:08:53 -07:00
Behdad Esfahbod 7ca54811f4 [amalgam] Fix CFF
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 16:00:58 -07:00
Behdad Esfahbod 3724f13ba0 [amalgam] Finish fixing Indic-like shapers
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 15:40:11 -07:00
Behdad Esfahbod eb37bc9d93 [use] Remove Syriac features
This was non-standard, and unused anyway.
2019-07-02 15:21:11 -07:00
Behdad Esfahbod dc480fc471 [amalgam] More Indic-like issues
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 15:17:56 -07:00
Behdad Esfahbod d8b5353e07 [amalgam] More
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 15:09:26 -07:00
Behdad Esfahbod d115a9e022 [amalgam] Fix most duplicate-id instances in Indic-like shapers
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 14:58:52 -07:00
Behdad Esfahbod c073233f45 Add make rule to build hb.cc
Part of https://github.com/harfbuzz/harfbuzz/issues/1809
2019-07-02 14:26:45 -07:00
Behdad Esfahbod f1d20d9b4d Add ucd-table make target 2019-07-02 14:18:38 -07:00
blueshade7 634390ecaf added VariationStore serializer to be used by HVAR/VVAR subsetters 2019-07-01 18:52:57 -07:00
Michiharu Ariza 5763a92749 Merge branch 'master' into var-subset 2019-07-01 15:17:19 -07:00
Michiharu Ariza 040b261dee add bimap test along with bug fix/tweaks 2019-07-01 13:54:36 -07:00
Ebrahim Byagowi 4ab2d1d676
[dwrite] Apply minor style improves 2019-07-01 19:30:21 +04:30
Carlo Bramini 5ebd265e66
Fix error rised by GCC8+ 2019-07-01 16:06:43 +02:00
Carlo Bramini 693dacbb1c
Use lower case file name with #include
I tried to cross compile harfbuzz for Windows and an error was generated because `DWrite_1.h` was not found.
This happened because the filesystem is case sensitive and for this reason that include file was not found.
The right name of the file to be used is `dwrite_1.h`, with all letters not capitalized:
https://docs.microsoft.com/en-us/windows/desktop/api/dwrite_1/
I also verified in the installation of VS2017 with Windows Kit v10 and in that place it was also lower case.
So, in my opinion it should be better to change this.
2019-07-01 13:31:26 +02:00
Carlo Bramini 601b6825b0
Dynamically load DWRITE
Also checks if DWriteCreateFactory() has been executed successfully.
2019-06-30 15:03:44 +02:00
Behdad Esfahbod ad341d5f16 [config] Fix CoreText build with NO_AAT 2019-06-28 16:01:09 -07:00
Ebrahim Byagowi 3f806673fb
Apply some minor improves on CFFIndex 2019-06-29 00:00:00 +04:30
Ebrahim Byagowi ddd29e5594
minor, reuse StructAtOffset logic in StructAtOffsetOrNull 2019-06-28 23:44:14 +04:30
Ebrahim Byagowi 9db7ce73d7
minor style improve in hb-cff-interp-common.hh 2019-06-28 23:11:52 +04:30
Ebrahim Byagowi 9a7b7bd9fc
style fix for pylint complain 2019-06-28 22:53:51 +04:30
Michiharu Ariza 01832fd16b alternate fix for https://crbug.com/971933 2019-06-26 15:59:00 -07:00
Behdad Esfahbod cd65305b05 [config] Don't disable emoji sequences in HB_TINY
It makes sense to disable this code these if editing is not needed.
However, this is also necessary to correctly display emoji sequences
in right-to-left direction.  For that reason, don't auto-disable it.
2019-06-26 14:57:48 -07:00
Behdad Esfahbod 7298716a3c [config] Compile out modified combining-class if HB_NO_OT_SHAPE
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 14:51:41 -07:00
Behdad Esfahbod 1cdd0fa60d [emoji] Port generator to packtab 2019-06-26 14:49:15 -07:00
Behdad Esfahbod 5130c90ac0 [config] Add HB_NO_EMOJI
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 14:29:39 -07:00
Behdad Esfahbod 9d5b5348c7 [config] Add HB_NO_SHAPER
Don't know who would want when why.  But makes sense to have.
2019-06-26 13:58:40 -07:00
Behdad Esfahbod 8fe15485cb [config] Add HB_NO_OT_TAG
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:49:42 -07:00
Behdad Esfahbod 7dcf8e126e [config] Fix build with HB_NO_OT_LAYOUT 2019-06-26 13:44:23 -07:00
Behdad Esfahbod 2804790bce [config] Add dependency 2019-06-26 13:38:14 -07:00
Behdad Esfahbod b0fd16eec6 [config] Add dependency 2019-06-26 13:31:51 -07:00
Behdad Esfahbod 12092a46d8 [config] Rename HB_NO_SHAPE_AAT to HB_NO_AAT_SHAPE 2019-06-26 13:31:01 -07:00
Behdad Esfahbod bb4bbe617d [config] Add HB_NO_OT_LAYOUT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:29:58 -07:00
Behdad Esfahbod ab40a2feec [config] Enable HB_NO_OT_FONT in HB_NO_OT 2019-06-26 13:25:02 -07:00
Behdad Esfahbod 7aad53657e [config] Add HB_NO_OT_SHAPE / HB_NO_OT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:21:03 -07:00
Behdad Esfahbod cee9f6e044 Fail compile if no shapers enabled 2019-06-26 13:01:58 -07:00
Behdad Esfahbod 8786820a5a [src] Add make targets "tiny" and "tinyz" 2019-06-26 12:55:46 -07:00
Behdad Esfahbod b14e413fae 2.5.3 2019-06-26 10:44:10 -07:00
Behdad Esfahbod 3bfa878c98 [gen-ucd] Protect against accidents like previous commit
https://github.com/harfbuzz/harfbuzz/pull/1796
2019-06-25 19:07:07 -07:00
David Corbett f4ea1a9afb [ucd] Include scripts added in Unicode 10 or later 2019-06-25 18:52:40 -07:00
Michiharu Ariza 10bd6b8d91 minor 2019-06-25 13:52:40 -07:00
Michiharu Ariza f3ee2bd020 add ops & methods to hb_bimap_t making it more like hb_map_t
moved has () to hb_bimap_t from hb_inc_bimap_t
moved identity () to hb_inc_bimap_t
removed forward()
2019-06-25 13:52:40 -07:00
Michiharu Ariza 094966959f add hb_bimap_t, subclass hb_inc_bimap_t replacing CFF::remap_t 2019-06-25 13:52:40 -07:00
David Corbett 0660175dc8 Categorize U+1133B for use in Tamil 2019-06-25 13:23:19 -07:00
David Corbett fb0df17b27 Correct "nonunihan" to "nounihan" 2019-06-24 21:54:26 -04:00
Ebrahim Byagowi bb4cdf8e0b Replace create_from_file with empty blob if HB_NO_OPEN is defined 2019-06-24 14:35:53 -07:00
GaryQian ccf1448238 Cast long->size_t to ensure comparison of similar types 2019-06-24 13:03:07 -07:00
Behdad Esfahbod ec8e635e0c [ucd] Use custom encoding to shrink composition data
Saves another 2.5kb.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-24 12:37:23 -07:00
Behdad Esfahbod 9c933acaa4 [ucd] Save a few more bytes
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-24 11:58:36 -07:00
Qunxin Liu 9bd8d66c2b [subset] VORG table to use _subset2 method and new iterator frameworks 2019-06-24 10:42:59 -07:00
James Hilliard c2d7dfc68f Add missing cairo-svg dependency to test-ot-color 2019-06-23 00:42:06 -06:00
Behdad Esfahbod ad97ec9501 [config/ucd] Add HB_NO_UNICODE_UNASSIGNED and activate in HB_TINY
Saves another 12kb:

$ python ./gen-ucd-table.py ucd.nounihan.grouped.zip > hb-ucd-table.hh && make -j5 CPPFLAGS='-Os -DHB_TINY' -C ~/hb/build/src/  && size ~/hb/build/src/.libs/libharfbuzz_la-hb-ucd.o
INFO: Loading UCDXML...
INFO: Preparing data tables...
INFO: Generating output...
INFO:   Compression=1:
INFO:       Dataset=gc       FullCost=18612
INFO:       Dataset=ccc      FullCost=3550
INFO:       Dataset=bmg      FullCost=1548
INFO:       Dataset=sc       FullCost=17765
INFO:       Dataset=dm       FullCost=13325
INFO:   Compression=3:
INFO:       Dataset=gc       FullCost=10726
INFO:       Dataset=ccc      FullCost=2389
INFO:       Dataset=bmg      FullCost=1052
INFO:       Dataset=sc       FullCost=13669
INFO:       Dataset=dm       FullCost=7780
INFO:   Compression=5:
INFO:       Dataset=gc       FullCost=8274
INFO:       Dataset=ccc      FullCost=2055
INFO:       Dataset=bmg      FullCost=908
INFO:       Dataset=sc       FullCost=4073
INFO:       Dataset=dm       FullCost=7780
INFO: Done.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-21 14:36:48 -07:00
Behdad Esfahbod ccea7fa119 [config] Make test build under HB_TINY 2019-06-21 14:36:17 -07:00
Ebrahim Byagowi 12cec6c12e
Don't define hb_blob_create_from_file if HB_NO_OPEN is defined 2019-06-21 22:39:42 +04:30
Behdad Esfahbod 7f3b409e85 Fix build with -O0
message_impl was not defined.  That causes trouble if compiler didn't
optimize the unreachable call out...
2019-06-20 14:24:43 -07:00
Behdad Esfahbod 6b44bf8538 2.5.2 2019-06-20 11:57:19 -07:00
Behdad Esfahbod fce3bf8127 [config] Add HB_NO_LAYOUT_COLLECT_GLYPHS
Part of
2019-06-19 20:34:29 -07:00
Behdad Esfahbod 6c725c7799 [config] Add HB_NO_LAYOUT_FEATURE_PARAMS
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 20:12:25 -07:00
Behdad Esfahbod 27de7c44fe [config] Add HB_NO_FACE_COLLECT_UNICODES
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 20:07:02 -07:00
Behdad Esfahbod 3caa32d737 [config] Add HB_NO_CMAP_LEGACY_SUBTABLES
Part of https://vimeo.com/331852453/06eec89c65
2019-06-19 19:59:26 -07:00
Behdad Esfahbod 8e3cde67df Fix MSVC build
MSVC warning:

c:\projects\harfbuzz\src\hb-ot-layout-gsubgpos.hh(2732): error C2121: '#': invalid character: possibly the result of a macro expansion [C:\projects\harfbuzz\build\harfbuzz.vcxproj]

Clang warning for it:

./hb-ot-layout-gsubgpos.hh:2729:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive]
2019-06-19 19:59:26 -07:00
Behdad Esfahbod c8f529a07e [config] Add HB_NO_HINTING, enabled by HB_TINY
Disables HintingDevice tables and Anchors addressing contour points.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 19:33:15 -07:00
Behdad Esfahbod a849873124 [config] Add HB_NO_VAR to disable variations support, enabled by HB_TINY
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 19:26:22 -07:00
Behdad Esfahbod 230adf2c41 [config] Add HB_NO_OT_FONT_GLYPH_NAMES
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 18:49:52 -07:00
Behdad Esfahbod b0debc32f6 [subset] Simplify collect_name_ids 2019-06-19 18:42:51 -07:00
Behdad Esfahbod a5897463d4 [config] Add HB_NO_STAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 18:36:35 -07:00
Behdad Esfahbod ffc2b8d56e [config] Don't include name table in face if HB_NO_NAME
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 18:33:29 -07:00
Behdad Esfahbod 1432df102e [config] Disable hb-ot-font code if HB_NO_OT_FONT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 18:32:40 -07:00
Behdad Esfahbod b1a2384a52 [ucd] Print out table sizes 2019-06-19 17:34:12 -07:00
Behdad Esfahbod f4de0c7754 [config] Disable AAT map
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:09:55 -07:00
Behdad Esfahbod d8bf6723a1 [config] Disable more legacy kerning
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:04:16 -07:00
Behdad Esfahbod 43d7048d59 [config] More trak disabling
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:02:32 -07:00
Behdad Esfahbod d84932ba50 [config] add HB_NO_OT_SHAPE_FRACTIONS, enabled in HB_LEAN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:57:48 -07:00
Behdad Esfahbod eaf4a7364c [config] Minor trak disable
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:51:23 -07:00
Behdad Esfahbod 971330c058 [config] Add HB_NO_LANGUAGE_PRIVATE_SUBTAG
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:37:35 -07:00
Behdad Esfahbod f642a5fa6c Restructure code 2019-06-19 16:36:09 -07:00
Behdad Esfahbod d2ff73b256 [config] Remove remaining AAT context bits if HB_NO_OT_KERN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:28:27 -07:00
Behdad Esfahbod 588697afd0 [config] Add HB_NO_OT_KERN, enabled by HB_MINI / HB_NO_LEGACY
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:24:51 -07:00
Behdad Esfahbod 2e3e929d2b Fix build 2019-06-19 15:50:13 -07:00
Behdad Esfahbod 631da9d816 [config] Remove tables from hb_face_t for disabled features
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 15:36:14 -07:00
Misty De Meo e710888188 coretext: remove trailing macro from SCRATCH_RESTORE 2019-06-18 15:52:23 -07:00
Behdad Esfahbod 10bac21bb5 [coretext/uniscribe/directwrite] Remove extra semicolons
Fixes https://github.com/harfbuzz/harfbuzz/pull/1783
2019-06-18 15:15:06 -07:00
Behdad Esfahbod f0b0fd4e78 Remove dead code 2019-06-18 14:40:24 -07:00
Behdad Esfahbod d7e27cd65a [config] Don't use VORG table if HB_NO_OT_FONT_CFF
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 14:38:05 -07:00
Behdad Esfahbod 37f8ebff5f [config] Fixup for AAT ltag table access
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 14:33:49 -07:00
Behdad Esfahbod f08066ce9a [config] One more morx disabling
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 14:30:45 -07:00
Behdad Esfahbod 231d025788 [config] Don't compile AAT API if HB_NO_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 14:25:52 -07:00
Behdad Esfahbod bf9424a9a1 [config] Don't compile unused layout API if HB_NO_LAYOUT_UNUSED
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:31:35 -07:00
Behdad Esfahbod eb9798ef73 [config] Dont' compile buffer message API if HB_NO_BUFFER_MESSAGE
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:29:55 -07:00
Behdad Esfahbod be1c0ab218 [config] Don't compile buffer serialize API if HB_NO_BUFFER_SERIALIZE
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:26:03 -07:00
Behdad Esfahbod bdbabd110c Minor header include cleanup 2019-06-18 13:21:25 -07:00
Behdad Esfahbod 83de3a60ab [config] Don't compile color API if HB_NO_COLOR
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:18:15 -07:00
Behdad Esfahbod 350f98ea47 [config] Don't compile name table API if HB_NO_NAME
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:11:41 -07:00
Behdad Esfahbod da51a2cb0e [config] Don't compile math API if HB_NO_MATH
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 13:09:22 -07:00
Behdad Esfahbod 737436d3f8 Streamline HB_NO_CFF 2019-06-18 13:07:44 -07:00
Behdad Esfahbod 60653a7adb Remove HB_VECTOR_SIZE
It was cumbersome to get it to work reliably, for dubious performance
gain, mostly in the subsetter maybe...

Life is easier without.  It was disabled forever anyway.
2019-06-18 13:01:11 -07:00
Behdad Esfahbod 24060d3aa7 Add hb_bitwise_neg 2019-06-18 12:50:42 -07:00
Behdad Esfahbod 7cf9169078 Remove accidentally left cruft 2019-06-18 12:44:03 -07:00
Behdad Esfahbod 6172ec5d87 Remove (unused) posix_memalign fallback
Was wrong.  The returned pointer couldn't be passed to free().  Ouch!
2019-06-18 12:41:56 -07:00
Behdad Esfahbod aa3450cac1 [config] Don't compile disabled features
This makes it possible to include all .cc files into build, even if not
building CoreText, Uniscribe, etc.

This was mostly to help custom builders.  But also means that we can
include all files in our own build system.  Not sure if we should.
Definitely simplifies things, but slightly only.
2019-06-17 22:41:49 -07:00
Behdad Esfahbod 23ccd00a3d Minor 2019-06-17 20:35:04 -07:00
Behdad Esfahbod 23768a99e0 [config] Replace HAVE_FALLBACK with HB_NO_FALLBACK_SHAPE
This disables fallback shaper in tiny builds.  Projects that don't
use our build system and want to disable fallback shaper (eg. Firefox)
should define HB_NO_FALLBACK_SHAPE now.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-17 20:29:29 -07:00
Behdad Esfahbod 1c56b5d1d8 [serialize] Fix copy() calling operator=
9f610ae239 (commitcomment-33944686)
2019-06-17 14:23:04 -07:00
Behdad Esfahbod 6492b2345c Minor 2019-06-17 14:19:13 -07:00
Behdad Esfahbod 8938dd23c6 Use injected class name 2019-06-17 14:12:11 -07:00
Behdad Esfahbod bfb5569d53 Disable non-OpenType kerning with hb-ft in HB_TINY 2019-06-17 14:06:04 -07:00
Behdad Esfahbod 0819f3ca86 Deprecate v_kerning callback again
Part of https://github.com/harfbuzz/harfbuzz/issues/1682
2019-06-17 14:02:47 -07:00
Behdad Esfahbod eb2825c7f1 Minor 2019-06-17 13:42:53 -07:00
Behdad Esfahbod 896416bd4c Partially revert "[ft/ot] Remove implementation of deprecated kerning funcs"
This reverts commit 47030b1855.

Reverts only the hb-ft part, to reinstate non-OpenType kerning with
FreeType.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1682
2019-06-17 13:39:49 -07:00
Behdad Esfahbod 2682efb02d Revert "Deprecate font kern API"
This reverts commit d219f899f4.

API change: Un-deprecate font kern API.

Part of https://github.com/harfbuzz/harfbuzz/issues/1682

We should document that this API is only necessary to hook up
non-OpenType kerning.  hb-ot-font will continue to NOT implement them.
2019-06-17 13:38:49 -07:00
David Corbett d6cb244f7d Canonically reorder U+0C55 and U+0C56 2019-06-16 16:44:45 -07:00
Michiharu Ariza 82d4bfb8f3 enable cff subset tests
add Unicode UCS-4 cmap
fix Unicode bits in OS/2
add Unicode cmap sub-table in SourceHanSans-Regular_subset.otf
regenerate cff subset test expected results
2019-06-14 11:08:59 -07:00
Ebrahim Byagowi 6bcbe495bf
[cff] minor format (#1774) 2019-06-13 15:04:51 +04:30
David Corbett 4f37c0db9b Remove 'mym3' 2019-06-11 15:41:37 -07:00
Michiharu Ariza 90872a29ee change assert(false) to failure 2019-06-11 12:42:28 -07:00
Behdad Esfahbod 0c5da57d1a Fix typo :) 2019-06-10 14:06:25 -07:00
Ebrahim Byagowi 19b8eb08e5
Move HB_NO_SETLOCALE to closer place to its to unbreak HB_TINY build (#1768) 2019-06-11 01:33:30 +04:30
Ebrahim Byagowi b4a5a69ad8
Add HB_NO_OEPN (#1767) 2019-06-11 01:33:09 +04:30
Ebrahim Byagowi a36ff94171 Add HB_NO_SETLOCALE 2019-06-10 12:54:02 -07:00
Ebrahim Byagowi c4cae81a26 Remove round polyfill
Added in 01dff1e and 19256bef, this was targeted at older
msvc versions that don't support C99 but now as we require
C++11 we don't target places those envs thus removing this.
2019-06-10 12:49:50 -07:00
Behdad Esfahbod ff9b9b1c89 Simplify HB_PARTIALIZE impl
+this works on gcc 4.8 as well as default code path.
2019-06-10 12:48:25 -07:00
Behdad Esfahbod 451edbd4d0 Revert "Test new solution for HB_PARTIALIZE"
This reverts commit a0c4900799.
2019-06-10 12:46:54 -07:00
Behdad Esfahbod a0c4900799 Test new solution for HB_PARTIALIZE
Just testing bots.  Will finish based on results.
2019-06-10 12:33:23 -07:00
Ebrahim Byagowi 9407ef8d4b
minor, add HB_USE_INTERNAL_QSORT
The only thing I need for a working wasm in a minimum libc,
otherwise I have to provide the very same qsort inside that libc
2019-06-10 15:17:43 +04:30
Ebrahim Byagowi 7dcfc5357d
[stat] minor format 2019-06-09 11:58:08 +04:30
Ebrahim Byagowi 2646c7149c
[stat] minor 2019-06-09 11:51:58 +04:30
Ebrahim Byagowi c4669fda78
[algs] minor 2019-06-09 11:50:36 +04:30
Ebrahim Byagowi 9b853f755d
[cff] Use switch on multi-format structs (#1762) 2019-06-09 11:49:25 +04:30
Ebrahim Byagowi eff579f743 Update and use internal qsort everywhere 2019-06-08 12:53:27 -07:00
Behdad Esfahbod 5074d665a8 [ucd] Save another 1.5kb
https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-07 14:21:40 -07:00
Behdad Esfahbod 973699c49b Disable clang gcc impersonator 2019-06-07 12:49:06 -07:00
Behdad Esfahbod e4e518f33d Fix build on gcc 4.8
Fixes https://github.com/harfbuzz/harfbuzz/issues/1724
2019-06-07 12:41:09 -07:00
Behdad Esfahbod 3c240bd3dc Downgrade double-promotion from error to warning
https://github.com/harfbuzz/harfbuzz/issues/1740
2019-06-07 10:56:24 -07:00
Ebrahim Byagowi 385e436692 Minor, fix gcc maybe-uninitialized complain
I guess all of its field will be initialized anyway here but lets make it more defensive
2019-06-07 10:49:57 -07:00
Ebrahim Byagowi 1bada656a8
Minor, remove unnecessary semicolon
Causing -Wextra-semi-stmt build error when no primitive has chosen
Interesting that nobody has noticed it yet.
2019-06-07 02:01:27 +04:30
Garret Rieger f9b1ae7336 [subset] Move OS/2 to subset2. 2019-06-06 12:33:42 -07:00
Qunxin Liu 93d592e0e1 [subset] post table to use _subset2 2019-06-06 10:55:25 -07:00
Qunxin Liu db938479d7 [subset] maxp table to use _subset2 2019-06-05 14:56:21 -07:00
Eli Zaretskii d5e5f37832 This makes minor changes to allow building HarfBuzz with
mingw.org's MinGW.

src/hb-algs.hh: Don't compile _BitScanForward and _BitScanReverse
for GCC >= 4.  mingw.org's MinGW doesn't have these functions.

src/hb-atomic.hh: MemoryBarrier does exist in mingw.org's MinGW,
but it is not a macro, it is an inline function.  __MINGW32_VERSION
is a macro that exists only in mingw.org's MinGW, so conditioning
on it should not affect MinGW64, where MemoryBarrier is a macro.

src/hb-uniscribe.cc: Define E_NOT_SUFFICIENT_BUFFER if it is not
defined (mingw.org's MinGW doesn't).

src/hb.hh: Don't include intrin.h for mingw.org's MinGW, since that
header is not available; instead, include windows.h.  Conditioned
on __MINGW32_VERSION to avoid affecting MinGW64.
2019-06-05 14:37:51 -07:00
Michiharu Ariza 8f8e8a8479 fix build 2019-06-05 12:59:09 -07:00
Behdad Esfahbod c7439d4e3a Slightly massage buffer-messaging commit
Saves a few bytes.
2019-06-05 12:15:09 -07:00
Michiharu Ariza 4ddab6facc Merge branch 'master' into var-subset 2019-06-05 11:21:27 -07:00
Ebrahim Byagowi 4b1b0bf2f5
Merge pull request #1755 from ebraminio/slim
Don't use vsnprintf when HB_NO_BUFFER_MESSAGE is defined
2019-06-05 12:57:28 +04:30
Ebrahim Byagowi 815f002bb9 Don't use vsnprintf when HB_NO_BUFFER_MESSAGE is defined 2019-06-05 10:38:06 +04:30
David Corbett 2e16593b70 [myanmar] Make medial_group match the OT spec
Sometime between [July 2018] and [January 2019], the OpenType Myanmar
grammar changed: one asat is now allowed after a medial ya, before any
other medial consonant.

[July 2018]: http://web.archive.org/web/20180711011550/https://docs.microsoft.com/en-us/typography/script-development/myanmar
[January 2019]: http://web.archive.org/web/20190115044451/https://docs.microsoft.com/en-us/typography/script-development/myanmar

This also reverts commit 439b05867c, which
allowed an asat immediately after a medial ra.
2019-06-04 13:02:04 -07:00
Qunxin Liu 209491fc37 [subset] Hmtx/vmtx tables to use subset2 and new iterator frameworks 2019-06-04 12:08:05 -07:00
Michiharu Ariza 12febd68d6 added parentheses to FDSelect::sanitize as well 2019-06-03 16:40:03 -07:00
Michiharu Ariza be82a2fc0c parenthesized cond-exp in CFF2FDSelect::sanitize 2019-06-03 15:52:23 -07:00
Ebrahim Byagowi 760eb1bf93
Reapply possible bsearch overflow fix
Originally introduced in 21ede86 (#1314) but as it wasn't applied to hb_bsearch
accidentally removed while merging hb_bsearch_r to it.
2019-06-03 05:48:04 -07:00
Bruce Mitchener 5846884f86 test: Use nullptr in C++ code. (#1744) 2019-06-03 12:30:25 +04:30
Ebrahim Byagowi 8278ff7dce
minor 2019-06-02 00:36:30 +04:30
Ebrahim Byagowi 33d38e793e
Use a unified bsearch (#1741)
A part of #593
2019-06-02 00:19:57 +04:30
Ebrahim Byagowi c91f3fa3ea
[dwrite] Replace REPLACEME with release version the symbol had 2019-06-01 10:55:37 +04:30
Behdad Esfahbod 93c455567f 2.5.1 2019-05-31 22:56:56 -07:00
Behdad Esfahbod 619f5f1eb9 Fourth try at building VS bots
Based on https://github.com/harfbuzz/harfbuzz/issues/1730#issuecomment-497151210
2019-05-31 22:49:34 -07:00
Behdad Esfahbod aba3888d93 Third try at fixing VS build
https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod 8aaecbb583 Second VS fix try
https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod 5a1b5c0a8b Try fixing VS builds
Hopefully fixes https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod 92fde3dea2 Whitespace 2019-05-31 22:49:34 -07:00
rsheeter 49879adbfc [subset] Correct calculation of max offset; fixes bug where loca would erroneously be short 2019-05-31 19:43:30 -07:00
Behdad Esfahbod 2ad4ba7bc0 [gsub] Minor 2019-05-31 15:51:29 -07:00
Behdad Esfahbod 2dbdec66a1 [gsub] Porting serialize to iterators 2019-05-31 15:41:54 -07:00
Behdad Esfahbod 1834cf86d4 [serialize] Pass offset to serialize_subset() 2019-05-31 14:39:32 -07:00
Behdad Esfahbod 9260441624 [serialize] Pass offset to serialize_copy() 2019-05-31 14:35:01 -07:00
Behdad Esfahbod 87dd4bff1c [math] Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER
To HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.  Added a deprecated macro.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1734
2019-05-30 11:26:17 -04:00
Bruce Mitchener da9d43171b Fix some typos. 2019-05-28 17:13:57 +02:00
David Corbett d64fb9db52 [use] Allow U+1A60 TAI THAM SIGN SAKOT after vowel 2019-05-27 13:14:03 -04:00
Behdad Esfahbod 179570d4ca [atomic] Fix warning, second time
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
2019-05-27 13:08:07 -04:00
Behdad Esfahbod ad17a8bdd5 [ucd] Update for latest packTab 2019-05-25 16:33:37 -04:00
Behdad Esfahbod 771712b3ca [ucd] Update for recent packTab
No need for separate youseedy package.
2019-05-25 16:33:37 -04:00
Behdad Esfahbod 85b68a42af [atomic] Fix warnings
https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
2019-05-25 12:59:01 -04:00
Behdad Esfahbod 210f93c143 [mutex] Prefer pthread over windows
https://github.com/harfbuzz/harfbuzz/issues/1728
2019-05-25 12:49:20 -04:00
Behdad Esfahbod 5fd3ece523 2.5.0 2019-05-24 15:57:57 -04:00
Behdad Esfahbod 1da089179b Put back Since: tags for hb_color_get_* 2019-05-24 15:41:34 -04:00
Qunxin Liu e1a5ce6aa6 Fix fuzzer crash testcase
Add a check for stringOffSet(uint16) overflow,
return early if overflow happens
2019-05-24 15:26:20 -04:00
David Corbett d100ccad02 [use] Allow multiple FMs in a cluster 2019-05-24 15:07:29 -04:00
Behdad Esfahbod 487879e013 Don't compile in UCD if HB_NO_UCD defined 2019-05-24 14:35:26 -04:00
Behdad Esfahbod 1fffe51a29 [blob] Shuffle 2019-05-24 14:35:26 -04:00
rsheeter 96de94768b
Merge pull request #1722 from googlefonts/glyf
[subset] Use iterators in glyf/loca subsetting
2019-05-24 11:22:41 -07:00
Rod Sheeter 1197bef26c [subset] Per code review, use hb_array to avoid duplicated type name 2019-05-24 10:52:49 -07:00
Rod Sheeter 13b3cd307e [subset] Address @behdad review feedback 2019-05-24 10:10:12 -07:00
Behdad Esfahbod 226ab06ec1 [ucd] Add URL to dependencies 2019-05-23 20:39:04 -04:00
Behdad Esfahbod 65392b734e [ucdn] Replace UCDN with a new UCD implementation
UCDN was ~120kb of data.  New implementatoin is 69kb in default builds,
and 49kb if built with HB_OPTIMIZE_SIZE or __OPTIMIZE_SIZE__.  The
latter automatically enabled if built with -Os or -Oz.

There's room to shave off another 10kb or 20kb.  That will follow later.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-23 20:34:19 -04:00
Behdad Esfahbod 12c59f6c40 [deprecated] Minor 2019-05-23 20:34:19 -04:00
Behdad Esfahbod 36dee9221f [gen-ucd] Rename 2019-05-23 20:34:19 -04:00
Behdad Esfahbod 831c213501 [gen-ucd] Minor 2019-05-23 20:34:19 -04:00
Garret Rieger ff7fc6d488 [subset] Add morx, mort, kern, and kernx to the default layout tables drop list. 2019-05-22 17:36:16 -07:00
Qunxin Liu 993d81b9c5 [subset] Add one ttf file with fvar/STAT tables to integration test
Ignore gvar/MVAR/HVAR table
add support for --nameIDs=* option
2019-05-22 17:20:45 -07:00
Rod Sheeter 58ce477ac1 [subset] Report failure more often 2019-05-21 20:22:40 -07:00
Rod Sheeter 14e3b0cf41 [subset] Code review feedback 2019-05-21 20:09:36 -07:00
Behdad Esfahbod a03ed95e7d [gen-ucd] Generate decomposition tables
Code is ugly.  Ugh.
2019-05-21 16:43:39 -04:00
Behdad Esfahbod 8a48c88fa9 [gen-ucd] Comment 2019-05-21 16:43:39 -04:00
Behdad Esfahbod b71d353cee [gen-ucd] Remove some code 2019-05-21 16:43:39 -04:00
Rod Sheeter 4ea44112b5 [subset] Remove missed reference to hb-subset-glyf, was deleted 2019-05-21 13:07:43 -07:00
Garret Rieger 0af9de13b7 [subset] For gsub subsetting only consider glyphs reachable via gsub closure. 2019-05-21 13:02:11 -07:00
Rod Sheeter 349d692b0e [subset] Iter in and out for loca 2019-05-21 12:38:53 -07:00
Rod Sheeter 95445d79be [subset] Write loca using more idiomatic harfbuzzese 2019-05-21 11:14:31 -07:00
Rod Sheeter d1b12a5465 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:29:54 -07:00
Rod Sheeter 3a43603ece [subset] Fix memory leak caused by failure to cleanup glyf accelerator 2019-05-20 21:25:42 -07:00
Rod Sheeter 5cedda5e4a [subset] Fix null pointer deref, tidy up a bit 2019-05-20 21:25:42 -07:00
Rod Sheeter 8a84b540c7 [subset] Tests passing using iterator based glyf 2019-05-20 21:25:42 -07:00
Rod Sheeter 82bbec3063 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into glyf 2019-05-20 21:25:42 -07:00
rsheeter 9d09ac13a1 [subset] Tweak hint stripping 2019-05-20 21:25:42 -07:00
rsheeter 3a4c928fcf [subset] Fix glyf tests except hint stripping & local test asan 2019-05-20 21:25:42 -07:00
Rod Sheeter b77dde8f13 [subset] Destroy blob 2019-05-20 21:25:35 -07:00
Rod Sheeter 14db6512f8 [subset] Correct flipped use short computation 2019-05-20 21:25:29 -07:00
Rod Sheeter ab3fe5de2b [subset] Glyf by iter now runs but fails tests 2019-05-20 21:25:16 -07:00
rsheeter 0d7fef2d50 [subset] Dinner time, checkpoint 2019-05-20 21:25:11 -07:00
rsheeter 240bc86e3a [subset] Remove subset-glyf; want everything to point to new iter-based edition. Some of the code will resurface as impl builds out. 2019-05-20 21:25:05 -07:00
rsheeter 02d4d4f3e6 [subset] Starting to sketch glyf as iter 2019-05-20 21:24:59 -07:00
Behdad Esfahbod 1aadd1449c [gen-ucd] Generate script order table 2019-05-20 17:29:27 -04:00
Behdad Esfahbod be8de18867 [gen-ucd] Start adding script-order 2019-05-20 17:29:27 -04:00
Behdad Esfahbod 4a0eb066fd [gen-ucd] Add gc order 2019-05-20 17:29:27 -04:00
Behdad Esfahbod d1f9b2f961 [gen-ucd] Flesh out a bit more 2019-05-20 17:29:27 -04:00
Behdad Esfahbod d6de4659aa Add HB_OPTIMIZE_SIZE
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-20 17:29:27 -04:00
Garret Rieger 0ff3618c2d [subset] Use hb_subset_input_t inside of subset_options_t so that input defaults are shared between the library and cli. 2019-05-20 13:35:46 -07:00
Garret Rieger 3be0ffe45d [subset] Add drop tables to subset input. 2019-05-20 13:35:46 -07:00
Nathan Willis d00a20bedc [Docs] Add gtk-doc comments to hb-graphite2. 2019-05-20 17:38:38 +01:00
Nathan Willis 0a5a8fcbce [Docs] Add gtk-doc comments to hb-icu. 2019-05-20 17:38:13 +01:00
Nathan Willis 9126a5ff07 [Docs] Add gtk-doc comments to hb-ft. 2019-05-20 17:37:56 +01:00
Nathan Willis bfa7b0af02 [Docs] Add gtk-doc comments to hb-gobject and hb-glib. 2019-05-20 17:36:55 +01:00
Nathan Willis 27222253d4 [Docs] Add gtk-doc comments to hb-uniscribe. 2019-05-20 17:36:18 +01:00
Nathan Willis 32ae0d3e78 [Docs] Add gtk-doc comments to hb-coretext. 2019-05-20 17:35:39 +01:00
Behdad Esfahbod 0ca7ad4352 [cff] Fix unlikely invocations 2019-05-20 11:39:07 -04:00
Behdad Esfahbod 3efb7af7e2 [STAT] Fix sanitize condition
Oops!

Fixes https://oss-fuzz.com/testcase-detail/5696825891225600
2019-05-20 11:37:16 -04:00
Ebrahim Byagowi e66eb21a46
Don't set _POSIX_C_SOURCE in NetBSD
According to a harfbuzz package patch on NetBSD project
https://github.com/NetBSD/pkgsrc/blob/trunk/fonts/harfbuzz/patches/patch-src_hb-blob.cc
2019-05-18 07:44:48 -07:00
Behdad Esfahbod 08c3648c6e Oops, fix include 2019-05-17 16:21:34 -07:00
Behdad Esfahbod 24958b8868 [set] Use StructAtOffsetUnaligned 2019-05-17 16:20:36 -07:00
Behdad Esfahbod b7be59311f Fix msan issue
The fact that HB_AUTO_RETURN will return rvalue-references for rvalues
is very disturbing.

Even apart from that, I'm totally lost re any hb_move needs or
hb_forward'ing to functions/templates where the type is fixed by
explicitly specifying template parameters.

==1==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f6ad65e51e0 at pc 0x0000005da240 bp 0x7ffc104ab670 sp 0x7ffc104ab668
READ of size 4 at 0x7f6ad65e51e0 thread T0
SCARINESS: 55 (4-byte-read-stack-use-after-return)
     #0 0x5da23f in bool OT::Coverage::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>) harfbuzz/src/hb-ot-layout-common.hh:1055:16
     #1 0x5d88f9 in bool OT::SingleSubstFormat1::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, unsigned int) harfbuzz/src/hb-ot-layout-gsub-table.hh:98:9
2019-05-16 13:34:19 -07:00
Behdad Esfahbod bcd3ffc948 Whitespace 2019-05-16 13:27:08 -07:00
Behdad Esfahbod 05bc5f96fb [subset] Remove extra iteration 2019-05-16 13:05:58 -07:00
Garret Rieger 6555f20958 [subset] Truncate empty gids at the end in retain-gids mode. 2019-05-16 10:34:53 -07:00
Behdad Esfahbod 2376867649 Use hb_map(hb_add(this)) to dereference OffsetTo<>'s 2019-05-15 22:01:44 -07:00
Behdad Esfahbod 6f51e55524 [algs] Rename hb_bind to hb_partial
Since our API is the invers of what std::bind is, and closer to Python
functools.partial().
2019-05-15 21:41:12 -07:00
Behdad Esfahbod 0888e7bc86 [algs] Change hb_bind parameter number to be from one
To match std:;bind, even though our interfaces are very different.
2019-05-15 21:36:42 -07:00
Behdad Esfahbod dfa5e42971 Add back symmetric OffsetTo<>::friend operator+
Finally seems to be working now.
2019-05-15 21:18:14 -07:00
Behdad Esfahbod a06a236891 [algs] Partialize all operators 2019-05-15 21:16:09 -07:00
Behdad Esfahbod edc69ec935 [algs] Rewrite bind API
And add a partialization API use example to hb_add()
2019-05-15 21:09:56 -07:00
Behdad Esfahbod 16a3540ea4 [algs] Add hb_bind0 and hb_bind1 2019-05-15 20:48:20 -07:00
Behdad Esfahbod d214b07883 Fix clang build
Ugh.

In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
         hb_requires (hb_is_sorted_source_of (Iterator,
         ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
    hb_requires (hb_is_sorted_source_of (Iterator,
    ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
2019-05-15 19:07:39 -07:00
Behdad Esfahbod 371b55c7a0 Fix clang build
In file included from hb-ot-face.cc:41:
./hb-ot-layout-gsub-table.hh:293:7: error: template parameter redefines default argument
         hb_requires (hb_is_sorted_source_of (Iterator,
         ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
./hb-ot-layout-gsub-table.hh:40:5: note: previous default template argument defined here
    hb_requires (hb_is_sorted_source_of (Iterator,
    ^
./hb-meta.hh:59:27: note: expanded from macro 'hb_requires'
 define hb_requires(Cond) hb_enable_if((Cond))
                          ^
./hb-meta.hh:57:67: note: expanded from macro 'hb_enable_if'
 define hb_enable_if(Cond) typename hb_enable_if<(Cond)>::type* = nullptr
                                                                  ^
1 error generated.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod 243a5a6af2 [algs] Remove pair copy constructor
Use default.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod f92d188d77 Whitespace 2019-05-15 18:52:57 -07:00
Garret Rieger 962f95cf80 [subset] Switch SingleSubst to use iterators in serialize. 2019-05-15 18:37:32 -07:00
Behdad Esfahbod 78d35f0e78 Reduce captures of lambdas 2019-05-15 18:15:05 -07:00
Behdad Esfahbod 5266ca86b6 Fix tests
Oops.
2019-05-15 17:59:00 -07:00
Behdad Esfahbod 5da8a3a90d Remove variadic form of hb_min/hb_max
Unused, and why here and not in other functions...
2019-05-15 17:11:18 -07:00
Behdad Esfahbod e5cfe9d582 Add arithmetic operators 2019-05-15 16:59:36 -07:00
Behdad Esfahbod f7a458510d Add hb_bitwise_* ops 2019-05-15 16:53:12 -07:00
Behdad Esfahbod d822e0a16f [array] Adjust operator!=
See comments.
2019-05-15 16:30:08 -07:00
Behdad Esfahbod 203ea58bf6 More adjustment to OffsetTo<>::friend opeator+
Let's see if I break any bots.  But yeah, it wasn't accepting a
non-const pointer.  It just happens that we don't use that in the
code it seems.
2019-05-15 16:14:40 -07:00
Behdad Esfahbod ebf47a95f2 [iter] Simplify operator!= of iterator filters
Both to save ops, and also because lambdas don't implement operator!=,
so this was failing in range-based for loop if a lambda was passed to
hb_map() or hb_filter().  Just check end-condition assuming that we
are comparing to .end() or iterators that are otherwise derived from
current iterator.  Ie. don't compare things that are expected to be
in common.
2019-05-15 15:14:26 -07:00
Behdad Esfahbod d3e1d5044f Add all pair_t comparison operators 2019-05-15 14:34:36 -07:00
Behdad Esfahbod f244224dbb [iter] Use default operators instead of redefining empty ones 2019-05-15 14:34:36 -07:00
David Corbett 125c45ed36 Convert Consonant_Initial_Postfixed to CONS_MED 2019-05-15 14:34:25 -07:00
Ebrahim Byagowi e2767e438c
[ci][test] Ignore other gcov symbols also
To fix https://travis-ci.org/harfbuzz/harfbuzz/jobs/532693197
2019-05-15 13:14:09 +04:30
Behdad Esfahbod 763ea4224b Another try 2019-05-15 01:21:32 -07:00
Behdad Esfahbod e1b2edb04a Completely revert the thing back 2019-05-15 01:12:04 -07:00
Behdad Esfahbod c58eeb5fb3 Another try at fix
Fails locally.  Trying to understand.  Sigh
2019-05-15 01:10:31 -07:00
Behdad Esfahbod 004edf3bda Ugh. How was the Travis bot happy before, but isn't now?! :( 2019-05-15 01:02:50 -07:00
Behdad Esfahbod e01c7b1648 Move OffsetTo operator+ back out of class
Apparently there's different overload resolution rules that apply, at
least with some (older?) version of gcc.

hb-ot-name-table.hh: In member function ‘void OT::name::accelerator_t::init(hb_face_t*)’:
hb-ot-name-table.hh:244:62: error: ambiguous overload for ‘operator+’ (operand types are ‘hb_blob_ptr_t<OT::name>’ and ‘OT::NNOffsetTo<OT::UnsizedArrayOf<OT::IntType<unsigned char, 1u> > > {aka const OT::OffsetTo<OT::UnsizedArrayOf<OT::IntType<unsigned char, 1u> >, OT::IntType<short unsigned int, 2u>, false>}’)
       this->pool = (const char *) (const void *) (this->table+this->table->stringOffset);
                                                              ^
hb-ot-name-table.hh:244:62: note: candidates are:
hb-ot-name-table.hh:244:62: note: operator+(const C*, long int) <built-in>
hb-ot-name-table.hh:244:62: note: operator+(const char*, long int) <built-in>
2019-05-15 00:52:17 -07:00
Behdad Esfahbod b213042f87 Revert "Revert symmetric OffsetTo overloads"
This reverts commit 01912efb74.

Actually this didn't break things.  Fixing
2019-05-15 00:50:48 -07:00
Behdad Esfahbod 01912efb74 Revert symmetric OffsetTo overloads
Reverts 57f65ae935

Caused ambiguous-overload on some gcc...
2019-05-15 00:42:47 -07:00
Behdad Esfahbod d0df996cdc Use implicit lambda return type 2019-05-15 00:32:41 -07:00
Behdad Esfahbod 57f65ae935 Add symmetric friend operator+ for OffsetTo 2019-05-14 22:52:59 -07:00
Behdad Esfahbod 71208e5047 Move OffsetTo<> deref operators in-class as friends 2019-05-14 22:51:59 -07:00
Behdad Esfahbod e6d6f4b96d Whitespace 2019-05-14 22:46:31 -07:00
Behdad Esfahbod 889dc1eb06 [iter] Remove sort categorization
See comments.
2019-05-14 22:28:07 -07:00
Behdad Esfahbod b4eff38397 Start of gen-ucd.py, to replace UCDN 2019-05-14 14:44:27 -07:00
Qunxin Liu 02e5e5d939 [subset] retian nameids from STAT and fvar tables 2019-05-14 14:44:17 -07:00
Behdad Esfahbod ff7995200e Hopefully last warning fix 2019-05-14 07:44:03 -07:00
Ebrahim Byagowi 9e7c9c3adb
Fix -Wunused-function on HB_NO_SHAPE_AAT
We should add a bot for it
Part of #1652
2019-05-14 15:58:51 +04:30
Dominik Röttsches c73d7ba75d Fix building with HB_NO_SUBSET_LAYOUT
Fixes an unused function warning when building with HB_NO_SUBSET_LAYOUT
as part of the Chrome build.
2019-05-14 13:31:44 +03:00
Behdad Esfahbod f39934983f [ucdn] Fix Hangul composition
https://github.com/grigorig/ucdn/issues/23
2019-05-14 00:13:21 -07:00
Behdad Esfahbod b2ab15a78c Fix more warnings 2019-05-13 23:47:28 -07:00
Behdad Esfahbod 42ae468a8a [config] Add NDEBUG and HB_NDEBUG
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 23:43:45 -07:00
Behdad Esfahbod 0a01deb76f One more warning fix
No idea where these appear from...
2019-05-13 18:04:09 -07:00
Behdad Esfahbod f76e9f2ede [icu] Comment 2019-05-13 17:39:46 -07:00
Behdad Esfahbod 70fe9e7355 Fix moreeeeeeeeeee 2019-05-13 17:35:02 -07:00
Behdad Esfahbod 68e12e68f8 Fix more semi-colon issues 2019-05-13 17:28:59 -07:00
Behdad Esfahbod 4d3cf2adb6 [iter] Fix zip iterator sortedness classification logic 2019-05-13 17:25:07 -07:00
Behdad Esfahbod c572732f29 Fix more excess semi-colon errors 2019-05-13 15:41:09 -07:00
Behdad Esfahbod 513762849a [iter] Track strictly-sorted iterators
This make output of hb_enumerate() sorted regardless of input iterator.
2019-05-13 15:36:14 -07:00
Behdad Esfahbod 7e02063f32 [iter] Minor 2019-05-13 15:26:00 -07:00
Garret Rieger a5fb44a8cb [subset] Fix shadowed 'groups' param in cmap. 2019-05-13 15:04:35 -07:00