Commit Graph

7738 Commits

Author SHA1 Message Date
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
Behdad Esfahbod 73943bdf21 Adjust uniscribe_bug_compatible mode
More correct behavior.  We were commenting out some legit conditions
before.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 14:48:31 -07:00
Behdad Esfahbod 809c587083 [config] Better compile away morx/kerx/trak
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 14:45:51 -07:00
Behdad Esfahbod b1d3e54bd3 [indic] Don't constrain how many C, M, ... occur
Fixes https://github.com/harfbuzz/harfbuzz/issues/1709

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 14:35:04 -07:00
Behdad Esfahbod a487fc3324 Another extra semi-colon 2019-05-13 14:16:33 -07:00
Behdad Esfahbod 8461ade783 Revert "[ragel] Regenerate ragel-generated files using ragel 7.0.0.11 May 2018"
This reverts commit 9b05db33b5.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1708
2019-05-13 14:10:48 -07:00
Behdad Esfahbod 52c15b053a Revert "[ragel] Switch to -T1 output instead of -F1"
This reverts commit ae8719eb59.

Part of https://github.com/harfbuzz/harfbuzz/issues/1708
2019-05-13 14:10:28 -07:00
Behdad Esfahbod e98f0ddd63 Fix extra semi-colon 2019-05-13 13:53:06 -07:00
Behdad Esfahbod ae8719eb59 [ragel] Switch to -T1 output instead of -F1
Fedora upgraded to ragel 7, which is buggy if char is signed.
Switching to -G2 output fails with sign-compare error:

../../src/hb-buffer-deserialize-json.hh:107:12: error: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘const char’ [-Werror=sign-compare]
    if ( 9u <= ( (*( p))) && ( (*( p))) <= 13u ) {
         ~~~^~~~~~~~~~~~~

Switching to -T1 for now.  It actually results in smaller code,
at the expense of some binary searching instead of flat tables.
In the not distant future, we might actually generate two different
outputs and choose between depending on size-optimize options.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1708
2019-05-13 12:30:40 -07:00
Behdad Esfahbod df3f36f0bb Minor 2019-05-12 20:56:36 -07:00
Behdad Esfahbod ccc88e98f3 Fix MSVC build 2019-05-12 16:12:06 -07:00
Behdad Esfahbod f8f9cb93b7 [config] Define HB_NO_SUBSET_LAYOUT in HB_LEAN
Assumning subsetter would be used for printing-like uses in that case,
which don't need GSUB/GPOS.
2019-05-12 15:56:25 -07:00
Behdad Esfahbod a1394a28fc [config] Add HB_NO_UNISCRIBE_BUG_COMPATIBLE
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-12 15:47:46 -07:00
Behdad Esfahbod dba1ac1b0e [config] Disable buffer serialize routines in HB_TINY
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-12 15:33:49 -07:00
n8willis 3d9be2ad50
Merge pull request #1665 from n8willis/docs-gtkdoc-colormath
[Docs] Add gtk-doc comments for OT color and OT math
2019-05-12 20:03:29 +01:00
Behdad Esfahbod a20db496f0 Fix builds 2019-05-12 11:08:45 -07:00
Behdad Esfahbod 8694d60829 [config] Enable HB_NO_MT in HB_TINY
Now that user can override it if needed...

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-12 11:05:24 -07:00
Behdad Esfahbod 7f6fca4ef7 Force-disable CFF code under disabling conditions
Subsetter size goes down from 190kb to 119kb.  Main library about 7kb.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-12 10:29:47 -07:00
Behdad Esfahbod 5249eee437 [config] Allow overriding chosen config 2019-05-11 16:12:23 -07:00
n8willis 1a850abd66
Merge branch 'master' into docs-gtkdoc-colormath 2019-05-11 20:16:57 +01:00
Nathan Willis 8a544171d1 Corrections to OT Color gtk-doc comments. 2019-05-11 20:11:49 +01:00
Nathan Willis 301f5091f6 Corrections to OT Math gtk-doc comments. 2019-05-11 20:11:36 +01:00
Behdad Esfahbod a6048e4cd0 Fix build 2019-05-11 12:11:22 -07:00
Behdad Esfahbod 32d3c06b61 Disable sbix if no-color or no-ot-font-bitmap
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 11:59:18 -07:00
Behdad Esfahbod 606841b070 [iter] Check for more before forwarding/rewinding past ends 2019-05-11 11:56:26 -07:00
David Corbett c1c122e7b3 [iter] Fix filter rewinding 2019-05-11 11:52:40 -07:00
David Corbett b854d4ff46 [array] Fix rewinding 2019-05-11 11:52:40 -07:00
n8willis 76e80c5ca5
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 19:51:24 +01:00
Behdad Esfahbod 79126df307 [iter] Add hb_map_sorted() and hb_map_retains_sorting() 2019-05-11 11:23:31 -07:00
n8willis bcd81932f0
Update src/hb-ot-math.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:10:32 +01:00
n8willis ddc6dd42f7
Update src/hb-ot-math.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:10:11 +01:00
n8willis 46e05ecca1
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:09:52 +01:00
n8willis 6d9870b479
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:09:26 +01:00
n8willis 12ea4a24c4
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:08:40 +01:00
n8willis 3535f2d31e
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:07:38 +01:00
n8willis 12d2c472fe
Update src/hb-ot-color.cc
Co-Authored-By: Khaled Hosny <khaledhosny@eglug.org>
2019-05-11 14:06:56 +01:00
Behdad Esfahbod 7f45ce42db [config] Rename 2019-05-11 01:28:31 -07:00
Behdad Esfahbod 0e78d4ddae [config] Add HB_NO_NAME
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 01:27:50 -07:00
Behdad Esfahbod 1fc0772117 [config] HB_NO_OT_NAME_LANGUAGE AAT 2019-05-11 01:24:23 -07:00
Behdad Esfahbod 4381bb2de7 [config] Comment 2019-05-11 01:14:04 -07:00
Behdad Esfahbod 9c921e6c32 [config] Enable HB_NO_NAME_TABLE_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 01:08:51 -07:00
Behdad Esfahbod 81b79dfc39 [config] Add HB_NO_COLOR to HB_LEAN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:53:52 -07:00
Behdad Esfahbod b63a8e173c [config Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS to LEAN
Already I don't like the inflexibility of this approach :(.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:47:20 -07:00
Behdad Esfahbod 42a2128477 [config] Disbale getenv() and atexit() if HB_LEAN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:44:38 -07:00
Behdad Esfahbod fca2786041 [config] Make HB_DISABLE_DEPRECATED actually compile
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:37:01 -07:00
Behdad Esfahbod 5a48611ccd [config] Add HB_NO_OT_LAYOUT_UNUSED
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:19:03 -07:00
Behdad Esfahbod 771f1b21d1 [config] Adjust 2019-05-11 00:16:18 -07:00
Behdad Esfahbod 484f6e8215 [config] Add HB_LEAN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:13:35 -07:00
Behdad Esfahbod 0bfd14c0ed [config] Fix tests 2019-05-11 00:06:57 -07:00
Behdad Esfahbod 784df8eba1 [config] Flesh out more
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-11 00:04:59 -07:00
Behdad Esfahbod 799c6a5081 [config] Add some 2019-05-10 23:56:40 -07:00
Behdad Esfahbod e6582de12f Add hb-config.hh 2019-05-10 23:53:38 -07:00
Behdad Esfahbod d43af339e7 [subset] More HB_NO_SUBSET_LAYOUT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-10 23:46:22 -07:00
Behdad Esfahbod 31c591d69f [cff] Prune more code if HB_NO_OT_FONT_CFF
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-10 23:40:09 -07:00
Behdad Esfahbod 5ea8ad5c48 [subset] Add HB_NO_SUBSET_CFF
Doesn't fully prune all the relevant code.  To be fixed later.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-10 23:36:42 -07:00
Behdad Esfahbod 2c93f0dee3 Add HB_NO_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-10 23:35:10 -07:00
Behdad Esfahbod 62dfe7aea2 [cff] Minor 2019-05-10 23:18:08 -07:00
Behdad Esfahbod 227d85e138 Minor 2019-05-10 23:16:14 -07:00
Behdad Esfahbod 9bfe22af61 [sanitize] Fix previous commit 2019-05-10 22:44:19 -07:00
Behdad Esfahbod 4dcf65328f [sanitize] Simplify 2019-05-10 22:23:24 -07:00
Behdad Esfahbod 23168c3981 [sanitize] Use hb_is_trivially_copyable() 2019-05-10 22:20:47 -07:00
Behdad Esfahbod 0ff7954f9f [meta] Add hb_is_trivial 2019-05-10 22:04:40 -07:00
Behdad Esfahbod 7162a97bca [meta] Add hb_is_trivially_copyable() 2019-05-10 22:03:03 -07:00
Behdad Esfahbod f2398f34c0 [meta] Add is_trivially_destructible 2019-05-10 21:59:57 -07:00
Behdad Esfahbod 72cb5b8e52 Remove accidentally included include 2019-05-10 21:50:15 -07:00
Behdad Esfahbod 086772e409 [meta] Add is_destructible 2019-05-10 21:49:25 -07:00
Behdad Esfahbod b14745278a [met]a Add is_constructible, ... 2019-05-10 21:42:59 -07:00
Behdad Esfahbod 19e08a1467 [iter] Adjust source_of/sink_of 2019-05-10 21:25:07 -07:00
Behdad Esfahbod c0485e32a3 Use hb_void_t<> the way it's supposed to be used 2019-05-10 21:03:14 -07:00
Behdad Esfahbod 40fb36a39d [meta] Minor 2019-05-10 21:01:19 -07:00
Behdad Esfahbod f9a96a0a97 [meta] More rewrites 2019-05-10 20:56:16 -07:00
Behdad Esfahbod 5252677e53 [meta] Rewrite hb_int_min/max 2019-05-10 20:49:52 -07:00
Behdad Esfahbod caa3f92e91 [meta] void_tt -> void_t 2019-05-10 20:44:22 -07:00
Behdad Esfahbod 7df3ecfb40 [meta] hb_void_t -> hb_empty_t 2019-05-10 20:43:26 -07:00
Behdad Esfahbod 149c3db8a2 [meta] Minor 2019-05-10 20:34:52 -07:00
Behdad Esfahbod 707ff5b59d Minor 2019-05-10 20:31:20 -07:00
Behdad Esfahbod ce300f4fb6 [meta] Rewrite is_signed, add is_unsigned 2019-05-10 20:26:29 -07:00
Behdad Esfahbod e939d88bd7 [meta] Rewrite is_integral / is_floating_point, add is_arithmetic 2019-05-10 20:20:51 -07:00
Behdad Esfahbod c3a456a26e [meta] Rewrite is_cr_convertible 2019-05-10 20:17:30 -07:00
Behdad Esfahbod b4ad6af9c4 [meta] Rewrite is_base_of 2019-05-10 20:15:03 -07:00
Behdad Esfahbod 5a171ed3a6 [null] Modernize template work 2019-05-10 20:11:29 -07:00
Behdad Esfahbod 61d150c916 [meta] Add integral_constant, true_t -> true_type, false_t -> false_type 2019-05-10 20:06:31 -07:00
Behdad Esfahbod 38e3a8bd53 [meta] bool_tt -> bool_constant 2019-05-10 20:03:14 -07:00
Behdad Esfahbod 3919ca41b5 [meta] Add is_floating_point 2019-05-10 19:56:36 -07:00
Behdad Esfahbod 25bb7e005d [meta] Add is_signed for floating point types 2019-05-10 19:52:36 -07:00
Behdad Esfahbod e0315b4aad [meta] is_integer -> is_integral 2019-05-10 19:48:02 -07:00
Behdad Esfahbod 9574de7a3e [meta] Add add_const, add_pointer, add_lvalue_reference, add_rvalue_reference 2019-05-10 19:29:32 -07:00
Behdad Esfahbod 2fb3a8327a [vector] Simplify arrayZ
Was turned into function when we had static ones and wanted to be
move-safe...  Not the case anymore.
2019-05-10 18:43:48 -07:00
Behdad Esfahbod 4d67743ffd [subset] Use more auto typing 2019-05-10 18:43:48 -07:00
Behdad Esfahbod a27a31b9ee Minor 2019-05-10 18:43:48 -07:00
Behdad Esfahbod 2ade008628 [serialize] More rewrite 2019-05-10 18:43:48 -07:00
Behdad Esfahbod 99ed6e29d8 [serialize] Fix a TODO 2019-05-10 18:43:48 -07:00
Behdad Esfahbod 25a5b287f2 Fix sanitize fail of extension sublookups
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=960331
2019-05-10 16:03:20 -07:00
Behdad Esfahbod 9c0c3589f3 Minor 2019-05-10 13:56:50 -07:00
Behdad Esfahbod 5d773ec600 Minor 2019-05-10 13:53:15 -07:00
Behdad Esfahbod ac737f8c9e Minor again 2019-05-10 13:51:12 -07:00
Behdad Esfahbod 5d4437fad0 Minor 2019-05-10 13:43:29 -07:00
Behdad Esfahbod cd9bc732a7 [gsubgpos] Minor 2019-05-10 13:17:41 -07:00
Behdad Esfahbod 1d870cce68 Fix bot
Any way to catch these?
2019-05-10 11:32:59 -07:00
Behdad Esfahbod 30e4ae6bd1 [meta] Add hb_is_base_of 2019-05-10 11:26:49 -07:00
Behdad Esfahbod 98974ac16f [iter] Adjust is_source_of / is_sink_of
There are two cases that we accept.  Encode both.
2019-05-10 11:26:49 -07:00
Behdad Esfahbod ed972d5d73 [iter] Rewrite test functions
Notably, add hb_is_source_of(,) and hb_is_sink_of(,) to replace most
uses of hb_is_iterator_of(,).
2019-05-09 16:58:28 -07:00
Behdad Esfahbod 42901d7af9 Minor 2019-05-09 16:22:08 -07:00
Behdad Esfahbod 322627ae1d Whitespace 2019-05-09 16:08:10 -07:00
Behdad Esfahbod 489f3c35bd Fix bot 2019-05-09 15:39:53 -07:00
Behdad Esfahbod 790315e0db [algs] Implement implicit casting between compatible pair types 2019-05-09 15:31:24 -07:00
Behdad Esfahbod 69d9114b53 [meta] Rewrite hb_is_cr_converitble 2019-05-09 15:24:25 -07:00
Behdad Esfahbod ceda1f03b7 Fix compile
NameRecord is not copy-constructible, so should be iterator of
const-reference.
2019-05-09 15:24:25 -07:00
Behdad Esfahbod 3686c3b65c Adjust is_cr_convertible
If To is const& then From doesn't need to be &.
2019-05-09 15:24:25 -07:00
Behdad Esfahbod 726002a6a6 [iter] Make hb_is_iterator_of() check is_convertible
Instead of is_cr_convertible.
2019-05-09 15:24:25 -07:00
Behdad Esfahbod 70a49f2e4a [meta] Add hb_conditional<> and hb_is_convertible() 2019-05-09 15:24:25 -07:00
Garret Rieger 5e3cbed048 [subset] Switch building of glyph maps in subset plan to use iterators. 2019-05-09 14:52:01 -07:00
Garret Rieger 971020eca7 Add sink support for hb_hashmap_t and a reverse call to hb_pair_t. 2019-05-09 14:52:01 -07:00
Behdad Esfahbod 98eec3dd5f Add hb_pair_t(,) macro as alternative to hb_pair_t<,>
Just so it's easier to use it in other macros.
2019-05-09 13:15:36 -07:00
Behdad Esfahbod c9b287a867 Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity() 2019-05-09 12:43:57 -07:00
Behdad Esfahbod 00195a22ce [hdmx] Adjust to hb_iota() behavior change
Use hb_range() instead.
2019-05-09 12:14:36 -07:00
Behdad Esfahbod 4f2ad75a83 [enumerate] Fix hb_enumerate() len for step=0 2019-05-09 12:07:45 -07:00
Behdad Esfahbod 5da3c9c33f [iter] Fix hb_zip() end condition
We should compare-equal to end if either iterator's end reaches,
not if both reach at the same time.  Fixes infinite-loop in test
which was happening after hb_enumerate() switched to using hb_zip().
2019-05-09 11:31:13 -07:00
Behdad Esfahbod 57a5256fbc [iter] Minor 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 12dd56f857 [iter] Minor 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 57d545932f [test-iter] Don't walk past end
That's not legal.
2019-05-09 11:31:13 -07:00
Behdad Esfahbod 46837910e6 [iter] Allow negative step in hb_iota() 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 087327af1e [iter] Minor 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 64f0899a9f [iter] Bug fix 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 5d263556b9 [iter] Fix 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 2c24ea37b1 [iter] Take start value in hb_enumerate()
Also rewrite it via composition.
2019-05-09 11:31:13 -07:00
Behdad Esfahbod 7675d0d3a6 [iter] Add hb_range()
hb_range() is like Python range.  hb_iota() has slightly different API.
Ie. it takes a start, instead of end.
2019-05-09 11:31:13 -07:00
Behdad Esfahbod 05867d9f53 [meta] Add hb_int_max() 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 71537f93e0 [iota] end -> end_ to not shadow 2019-05-09 11:31:13 -07:00
Behdad Esfahbod 3476445420 Remove unnecessary template keyword
Should fix MSVC.
2019-05-08 21:14:01 -07:00
Behdad Esfahbod e2a51ff726 Remove unused var 2019-05-08 16:41:39 -07:00
Behdad Esfahbod e8b45c1933 [array] Add .copy() 2019-05-08 16:37:38 -07:00
Behdad Esfahbod afb013f350 Fix msan issue
hb_identity returns rvalue-reference if input is rvalue.  That, can leak
the reference and cause in bad access to temporaries after they are
destructed.  This is unfortunately unfixable given the desired
transparency of hb_identity :(.  Just don't use it with hb_map().
2019-05-08 16:16:43 -07:00
Behdad Esfahbod 4c94bc63d9 Move hb_invoke() back to hb-algs.hh 2019-05-08 15:57:33 -07:00
Behdad Esfahbod b710176ce2 [hdmx] Touch up 2019-05-08 15:47:24 -07:00
Garret Rieger e8ef0e627c [subset] WIP convert hdmx subsetting to use iterators. 2019-05-08 15:47:24 -07:00
Garret Rieger d5decf9bf7 [subset] Move hdmx to subset2. 2019-05-08 15:47:24 -07:00
Behdad Esfahbod 27b2093009 [map] Return rvalues from keys()/values() 2019-05-08 15:32:57 -07:00
Behdad Esfahbod 372c5b97bf [map] Fix bots
Older compilers don't like calling iter() from return-type decltype()

../src/hb-map.hh:226:12: error: cannot call member function 'decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) hb_hashmap_t<K, V, kINVALID, vINVALID>::iter() const [with K = const hb_serialize_context_t::object_t*; V = unsigned int; K kINVALID = 0u; V vINVALID = 0u; decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) = hb_map_iter_t<hb_filter_iter_t<hb_array_t<hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t>, bool (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, const<anonymous struct>&, 0u>, hb_pair_t<const hb_serialize_context_t::object_t*, unsigned int> (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, 0u>]' without object
     + iter()
            ^
../src/hb-meta.hh:58:41: note: in definition of macro 'HB_AUTO_RETURN'
 #define HB_AUTO_RETURN(E) -> decltype ((E)) { return (E); }
                                         ^
2019-05-08 15:28:39 -07:00
Behdad Esfahbod a304827184 [map] Add .values() iterator 2019-05-08 15:08:33 -07:00
Behdad Esfahbod 3c69505b3a [map] Fix iter 2019-05-08 15:08:33 -07:00
Behdad Esfahbod 5ceaafa5de [algs] Fix identity return type 2019-05-08 15:08:33 -07:00
Behdad Esfahbod f5705d7656 Whitespace 2019-05-08 15:08:33 -07:00
Behdad Esfahbod a17f0fa3a1 [meta] Capture rvalue-references in is_reference / remove_reference 2019-05-08 15:08:33 -07:00
Behdad Esfahbod 7166bd5634 Minor 2019-05-08 15:08:33 -07:00
rsheeter b827181ba1 [map] tweak test-iter.cc 2019-05-08 15:08:33 -07:00
rsheeter 492af0f1bf [map] add keys() 2019-05-08 15:08:33 -07:00
rsheeter ba60512813 [map] add a test for iteration 2019-05-08 15:08:33 -07:00
rsheeter 183b8094b5 [map] add iteration 2019-05-08 15:08:33 -07:00
Michiharu Ariza 02ae2591d9 initialize return param subr_num in popSubrNum
also snake_cased popSubrtNum and other surrounding function names
2019-05-08 13:44:03 -07:00
Behdad Esfahbod 503748d8a8 [name] Sanitize records for reals
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14641
2019-05-08 12:45:02 -07:00
Behdad Esfahbod 5875d775e1 [iter] Rename hb_iter_t() to hb_iter_type<> and add hb_item_type<> 2019-05-08 12:28:46 -07:00
Behdad Esfahbod bad1606639 [map] Make .has() optionally return value 2019-05-08 12:11:52 -07:00
Behdad Esfahbod 750d5af48e Make compiler happy with -Og 2019-05-08 12:10:00 -07:00
Behdad Esfahbod cdb61eb043 [iter] Accept pointer in hb_iter() and hb_iter_t() 2019-05-08 11:00:18 -07:00
Behdad Esfahbod c93eeba9b2 [iter] Accept pointer in hb_map() 2019-05-08 10:56:09 -07:00
Behdad Esfahbod 4c9e0c37a3 [serialize] LangSys subset->copy 2019-05-08 10:40:39 -07:00
Behdad Esfahbod 50dc3e7d9f Add hb_iota() 2019-05-08 10:35:02 -07:00
Behdad Esfahbod aa4ac13f0b [iter] Actually fix previous commit
The iter objects shouldn't not be const.  D'oh.
2019-05-08 10:03:10 -07:00
Behdad Esfahbod a66598e030 [iter] For ref-qualified variants 2019-05-08 10:03:10 -07:00
Behdad Esfahbod 8479eb5955 [iter] Fix hb_sink() to accept rvalue 2019-05-08 09:48:55 -07:00
Behdad Esfahbod 710d459aca [iter] Default predicates to hb_identity instead of hb_bool
The bool conversion happens after predicate is called automatically.
2019-05-08 09:33:09 -07:00
Behdad Esfahbod fe14a4000a Adjust hb_all/any/none 2019-05-08 09:32:19 -07:00
Behdad Esfahbod 4a101d8ffc Add hb_match 2019-05-08 09:16:33 -07:00
Behdad Esfahbod 26adefd9ea [algs] Try f[v] in hb_get() as last resort 2019-05-08 09:14:44 -07:00
Behdad Esfahbod 0601a19d38 Fix a few more double-pomotion errors 2019-05-08 07:47:36 -07:00
Behdad Esfahbod 2ba984fcbb Fix signed comparison on 32bit 2019-05-07 23:28:22 -07:00
Behdad Esfahbod dfc5780245 Fix more double-promotion errors
WHy do only some of the clang bots catch this I have no idea :(.
2019-05-07 23:26:09 -07:00
Behdad Esfahbod c2c9d204fa Fix double-promotion warnings
Make it an error.
2019-05-07 23:13:38 -07:00
Behdad Esfahbod 2c7093ed01 More tests 2019-05-07 23:10:59 -07:00
Behdad Esfahbod 56d2d0294b [algs] Sprinkle hb_min/max with hb-forward salad
Let's see if fixes MSVC fail.  Though, the error doesn't make sense to me.

  hb-blob.cc
c:\projects\harfbuzz\src\hb-algs.hh(166): error C2440: 'return': cannot convert from 'unsigned int' to 'unsigned int &&' [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
  c:\projects\harfbuzz\src\hb-algs.hh(166): note: You cannot bind an lvalue to an rvalue reference
  c:\projects\harfbuzz\src\hb-algs.hh(174): note: see reference to function template instantiation 'T &&<unnamed-type-hb_min>::impl<T,unsigned int&>(T &&,T2) const' being compiled
          with
          [
              T=unsigned int,
              T2=unsigned int &
          ]
2019-05-07 23:08:49 -07:00
Behdad Esfahbod bdbfdc92b5 [iter] Add value and projection to hb_all/any/none
Allows for eg, checking all values equal 2: hb_all (it, 2).
2019-05-07 23:02:44 -07:00
Behdad Esfahbod cf61acb9ea [iter] Accept rvalues to hb_enumerate() 2019-05-07 22:45:01 -07:00
Behdad Esfahbod e8bd5fc3fa [meta] Move hb_invoke from algs to meta 2019-05-07 22:29:40 -07:00
Behdad Esfahbod af571dbffc [meta] Replace most hb_enable_if with hb_requires
They do absolutely same thing.  hb_requires is to encode constraints,
whereas hb_enable_if is for more conditional enabling.
2019-05-07 21:39:20 -07:00
Behdad Esfahbod 6fa1f38070 [algs] Accept varargs in hb_min/max 2019-05-07 21:33:26 -07:00
Behdad Esfahbod 1ad07080c3 Rename 2019-05-07 21:00:23 -07:00
Behdad Esfahbod 83e3eabd84 Whitespace 2019-05-07 20:58:43 -07:00
Behdad Esfahbod 2b9402a86a Use universal references in hb_min/max 2019-05-07 20:55:33 -07:00
Behdad Esfahbod 41248cce0e Remove MIN/MAX in favor of hb_min/hb_max 2019-05-07 20:54:31 -07:00
Behdad Esfahbod 5c0f62adc9 [serializer] Accept pointer & reference in more methods 2019-05-07 17:25:58 -07:00
Behdad Esfahbod 839618de3b [serializer] Minor 2019-05-07 17:21:27 -07:00
Behdad Esfahbod 035b818e34 [meta] Fix addressof() 2019-05-07 17:21:18 -07:00
Behdad Esfahbod 7654ebe3a5 Whitespace 2019-05-07 16:53:03 -07:00
Behdad Esfahbod 95426ea983 Add comment 2019-05-07 15:56:51 -07:00
Behdad Esfahbod e33ad25222 [serialize] FeatureVariations subset->copy 2019-05-07 15:46:24 -07:00
Behdad Esfahbod fa8c4ba811 Minor 2019-05-07 14:26:03 -07:00
Behdad Esfahbod c09d6c58e9 [iter] Require lvalue in operators that return reference 2019-05-07 14:09:00 -07:00
Behdad Esfahbod 52f6c04c1e Minor 2019-05-07 13:45:48 -07:00
Behdad Esfahbod 7c037bd2be [name] Clean up some more 2019-05-07 13:37:43 -07:00
Behdad Esfahbod f982b9d9f8 [name] Clean up serialize() API 2019-05-07 13:29:01 -07:00
Behdad Esfahbod 59ee61fddc [name] Use iterators more 2019-05-07 13:26:15 -07:00
Behdad Esfahbod 2eb7e0e0e9 [serialize] Minor 2019-05-07 12:45:38 -07:00
Behdad Esfahbod 1c81cff2d3 Fix signed-comparison error on 32bit 2019-05-07 11:51:10 -07:00
Behdad Esfahbod 938de31575 Comment 2019-05-07 11:47:02 -07:00
Behdad Esfahbod 9b05db33b5 [ragel] Regenerate ragel-generated files using ragel 7.0.0.11 May 2018 2019-05-07 11:39:44 -07:00
Behdad Esfahbod 521262b236 [subset] Add TODO 2019-05-07 11:08:08 -07:00
Behdad Esfahbod e6a622b5b2 [serialize] Enable bias assertion 2019-05-07 11:06:43 -07:00
Behdad Esfahbod 530ddbbc32 [serialize] Use range-based loop 2019-05-07 11:05:51 -07:00
Behdad Esfahbod 0987c4204f [name] Remove dead code 2019-05-07 11:01:02 -07:00
Behdad Esfahbod 5ac4ab6868 [subset] fix for name table serializing with new serializer machinery 2019-05-07 10:59:03 -07:00
Behdad Esfahbod c548fcedc4 [WIP] [name] Port to fancy serializer machinery 2019-05-07 10:59:03 -07:00
Behdad Esfahbod fa2d97161f Remove use of deprecated implicit copy/move assignment operators
By removing custom copy constructor.
2019-05-07 00:36:36 -07:00
Behdad Esfahbod 45f5e56236 Warn on -Wdeprecated 2019-05-07 00:36:36 -07:00
Behdad Esfahbod 8903040fcd Actually make it work 2019-05-07 00:13:11 -07:00
Behdad Esfahbod 025eaa3c81 [iter] Make filter/map copyable 2019-05-07 00:05:37 -07:00
Behdad Esfahbod 03a68165d8 [meta] Add hb_reference_wrapper<>
Functionality kinda superset of std:: counterpart.
2019-05-07 00:05:31 -07:00
Behdad Esfahbod 0bf86d9c5d Whitespace 2019-05-06 23:39:26 -07:00
Behdad Esfahbod 72eb91deb9 Add hb_ref()
Unused.
2019-05-06 23:39:13 -07:00
Behdad Esfahbod 240f57e58d Rename hb_deref_pointer() to hb_deref() 2019-05-06 23:17:39 -07:00
Behdad Esfahbod 0b1ca5a13b [iter] Adjust hb_filter 2019-05-06 23:04:32 -07:00
Behdad Esfahbod 4c2fd05ca5 [iter] Implement range-based for loops
Part of https://github.com/harfbuzz/harfbuzz/issues/1648
2019-05-06 19:57:35 -07:00
Ebrahim Byagowi e261dc3a40
Ignore -Wc++11-compat as we require C++11 actually
pollutes gcc bots logs https://circleci.com/gh/harfbuzz/harfbuzz/85395
2019-05-07 01:24:55 +04:30
Behdad Esfahbod 9f9890e9e8 Remove HB_NO_OPTIONS in favor of HB_NO_GETENV
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-06 12:16:51 -07:00
Behdad Esfahbod 36bb24f7b4 [dispatch] Forward arguments in all dispatch multiplexers 2019-05-05 10:14:17 -07:00
Behdad Esfahbod c14efb8e68 Fix previous commit
Priority should be given to specific over dispatch.  Broke sanitize before.
This fixes it, by moving prioritization to the context implementation, since
the correct priority cannot be done in the dispatch implementation.  Done
for subset and sanitize only, which need it.
2019-05-05 09:54:58 -07:00
Behdad Esfahbod b10f65933a [dispatch] Use functionality from previous commit
To remove a couple of unwanted wrapper methods
2019-05-05 09:23:35 -07:00
Behdad Esfahbod ac350c92fd [dispatch] Try obj.dispatch(c) before trying c->dispatch(obj) 2019-05-05 09:10:46 -07:00
Behdad Esfahbod 0d5fd168f8 Revert "[WIP] [name] Port to fancy serializer machinery"
This reverts commit c7f366fbbb.

Don't know how it got to master!
2019-05-03 10:37:32 -07:00
Cody Planteen 72e3eba8f8 Add configuration option HB_NO_GETENV to disable use of getenv() 2019-05-03 10:28:43 -07:00
Behdad Esfahbod c7f366fbbb [WIP] [name] Port to fancy serializer machinery 2019-05-02 21:04:31 -07:00
Behdad Esfahbod 8855af38a8 [name] Add NameRecord::copy() 2019-05-02 16:26:06 -07:00
Behdad Esfahbod 097bb3f0af [name] Minor changes 2019-05-02 16:25:00 -07:00
Behdad Esfahbod 431b6e1c44 [serialize] Disable assertion for now 2019-05-02 16:22:32 -07:00
Behdad Esfahbod 8a32c9eecb [serialize] Misc getting copy() to work 2019-05-02 16:20:18 -07:00
Behdad Esfahbod 7d497a3a92 [debug] Allow return_trace() to return any type 2019-05-02 16:20:03 -07:00
Behdad Esfahbod 91176d5b77 [serialize] Check offset base is within (possibly end of) object 2019-05-02 15:12:07 -07:00
Behdad Esfahbod 0f1a6ce826 [name] Fix format of susbetted table to 0 2019-05-02 15:03:41 -07:00
Behdad Esfahbod 87810fc958 [name] Use variable forwarding to simplify sanitize() 2019-05-02 14:45:57 -07:00
Behdad Esfahbod bf91b418b0 [name] 2019-05-02 14:43:22 -07:00
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