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
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