Behdad Esfahbod [Tue, 29 Jan 2019 02:23:28 +0000 (21:23 -0500)]
Merge branch 'master' into iter
Behdad Esfahbod [Tue, 29 Jan 2019 02:20:12 +0000 (21:20 -0500)]
[meta] Remove _ft struct names
Using decltype() instead.
Behdad Esfahbod [Tue, 29 Jan 2019 02:16:51 +0000 (21:16 -0500)]
[pair] Use decltype
Behdad Esfahbod [Tue, 29 Jan 2019 01:47:58 +0000 (20:47 -0500)]
[CI] Peg CircleCI badge link to master branch
[skip ci]
Behdad Esfahbod [Tue, 29 Jan 2019 01:43:43 +0000 (20:43 -0500)]
[ci] Peg build status badges to master branch
[skip ci]
Behdad Esfahbod [Tue, 29 Jan 2019 01:38:15 +0000 (20:38 -0500)]
Switch README / README.md
[skip ci]
Behdad Esfahbod [Mon, 28 Jan 2019 21:39:01 +0000 (16:39 -0500)]
[iter] Add operator << to set / vector
Behdad Esfahbod [Mon, 28 Jan 2019 21:34:04 +0000 (16:34 -0500)]
[iter] Fix operator() impls
Behdad Esfahbod [Mon, 28 Jan 2019 21:23:12 +0000 (16:23 -0500)]
[iter] Add operator>> and operator<<
Behdad Esfahbod [Mon, 28 Jan 2019 21:17:36 +0000 (16:17 -0500)]
[iter] Use auto c = C.iter() internally
Behdad Esfahbod [Mon, 28 Jan 2019 19:35:41 +0000 (14:35 -0500)]
Merge branch 'master' into iter
Behdad Esfahbod [Mon, 28 Jan 2019 19:15:18 +0000 (14:15 -0500)]
[uniscribe] Whitelist function type cast
Behdad Esfahbod [Mon, 28 Jan 2019 19:12:41 +0000 (14:12 -0500)]
Fix sign comparison error
Behdad Esfahbod [Mon, 28 Jan 2019 19:09:59 +0000 (14:09 -0500)]
Fix warning
c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
Behdad Esfahbod [Mon, 28 Jan 2019 19:09:45 +0000 (14:09 -0500)]
[pragma] Silence MSVC unknown-pragma warning
Behdad Esfahbod [Mon, 28 Jan 2019 18:41:40 +0000 (13:41 -0500)]
Try fixing MSVC build
Behdad Esfahbod [Sun, 27 Jan 2019 00:03:56 +0000 (01:03 +0100)]
[iter] Accept C arrays in hb_iter()
Behdad Esfahbod [Sat, 26 Jan 2019 23:51:43 +0000 (00:51 +0100)]
[test] Test unary operator+
"Test" as in compiles..
Behdad Esfahbod [Sat, 26 Jan 2019 23:50:54 +0000 (00:50 +0100)]
[iter] Fix hb_iter()
Behdad Esfahbod [Sat, 26 Jan 2019 23:49:37 +0000 (00:49 +0100)]
[iter] Add unary operator+ that returns a copy
Behdad Esfahbod [Sat, 26 Jan 2019 23:44:45 +0000 (00:44 +0100)]
[iter] Add hb_bool() and make hb_filter default to it for predicate
Behdad Esfahbod [Sat, 26 Jan 2019 21:58:26 +0000 (22:58 +0100)]
[meta] Back to using _ft suffix for function-object types
Seprate namespace, cleaner, more clear.
Behdad Esfahbod [Sat, 26 Jan 2019 21:54:25 +0000 (22:54 +0100)]
[iter] Test that default-constructed iterators are empty
Behdad Esfahbod [Sat, 26 Jan 2019 21:50:00 +0000 (22:50 +0100)]
pragma GCC diagnostic error "-Winjected-class-name"
See
6b6783e1588ebe5772a1edc19552219e9d931bda
Behdad Esfahbod [Sat, 26 Jan 2019 21:47:35 +0000 (22:47 +0100)]
[iter] Use hb_declval() instead of Null() to get instance
I had used Null to make one of the bots happy before. Not going
to bend to such demands anymore..
Behdad Esfahbod [Sat, 26 Jan 2019 21:44:09 +0000 (22:44 +0100)]
[iter/meta] Fix build on newer clang
The mystery failure had to do with SFINAE failure because the template
function involved was accessing ::iter_t of a type that was also named iter_t.
In this context, apparently:
warning: ISO C++ specifies that qualified reference to 'iter_t' is a
constructor name rather than a type in this context, despite preceding 'typename' keyword
[-Winjected-class-name]
We use a new macro, also called hb_iter_t(), to get iterator type of
a type. This uses declval/hb_decltype, and has the added benefit
that it returns correct type for const vs non-const objects, if they
have different iterators.
Behdad Esfahbod [Sat, 26 Jan 2019 21:15:59 +0000 (22:15 +0100)]
[meta] Mark function-objects as const
Behdad Esfahbod [Sat, 26 Jan 2019 13:05:39 +0000 (14:05 +0100)]
Merge branch 'master' into iter
Behdad Esfahbod [Sat, 26 Jan 2019 13:04:51 +0000 (14:04 +0100)]
Fix -Wcast-function-type warnings in util/ with gcc 4.8
Behdad Esfahbod [Fri, 25 Jan 2019 15:11:45 +0000 (16:11 +0100)]
Fix mac test
Behdad Esfahbod [Fri, 25 Jan 2019 15:08:25 +0000 (16:08 +0100)]
More static constexpr
Behdad Esfahbod [Fri, 25 Jan 2019 14:34:03 +0000 (15:34 +0100)]
Merge branch 'master' into iter
Behdad Esfahbod [Fri, 25 Jan 2019 14:11:47 +0000 (15:11 +0100)]
[AAT] Add test for recent Ligature stack fix, using Zapfino on Mac
Behdad Esfahbod [Thu, 24 Jan 2019 17:16:17 +0000 (18:16 +0100)]
[AAT] Minor sign
Behdad Esfahbod [Thu, 24 Jan 2019 17:12:25 +0000 (18:12 +0100)]
[AAT] Use a ring buffer for ligature stack
I think Apple does very similarly, but probably with a stack size of 16.
We do it with a stack size that is currently set to 64.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
Behdad Esfahbod [Thu, 24 Jan 2019 17:06:17 +0000 (18:06 +0100)]
Whitespace
Behdad Esfahbod [Thu, 24 Jan 2019 17:01:07 +0000 (18:01 +0100)]
[AAT] Handle transition errors during machine operation
Before we used to give up. Now, just ignore error and continue processing.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
Behdad Esfahbod [Thu, 24 Jan 2019 16:23:11 +0000 (17:23 +0100)]
[AAT] Ignore machine errors and continue
Behdad Esfahbod [Thu, 24 Jan 2019 16:21:41 +0000 (17:21 +0100)]
[AAT] Minor
Behdad Esfahbod [Thu, 24 Jan 2019 16:17:00 +0000 (17:17 +0100)]
[AAT] Handle out-of-bounds classes
Behdad Esfahbod [Thu, 24 Jan 2019 16:10:12 +0000 (17:10 +0100)]
[AAT] Minor
Behdad Esfahbod [Thu, 24 Jan 2019 16:06:16 +0000 (17:06 +0100)]
[AAT] Minor
Behdad Esfahbod [Thu, 24 Jan 2019 15:29:09 +0000 (16:29 +0100)]
More pragma control
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=924848
Behdad Esfahbod [Thu, 24 Jan 2019 15:12:52 +0000 (16:12 +0100)]
Comment
Behdad Esfahbod [Thu, 24 Jan 2019 15:11:05 +0000 (16:11 +0100)]
Fix test
Behdad Esfahbod [Thu, 24 Jan 2019 15:08:33 +0000 (16:08 +0100)]
Form cluster for Emoji sub-region tag sequences
Fixes https://github.com/harfbuzz/harfbuzz/issues/1556
Behdad Esfahbod [Thu, 24 Jan 2019 11:50:38 +0000 (12:50 +0100)]
Fix macos tests with previous commit
Behdad Esfahbod [Thu, 24 Jan 2019 11:08:23 +0000 (12:08 +0100)]
Adjust mark offsets when zeroing from fallback mark positioning code
Adjust tests.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
Behdad Esfahbod [Wed, 23 Jan 2019 19:53:57 +0000 (20:53 +0100)]
[AAT] In InsertionChain, set mark to previous-position if inserting
Fixes MORX-31
Behdad Esfahbod [Wed, 23 Jan 2019 19:45:18 +0000 (20:45 +0100)]
[AAT] Re-enable tests MORX-31 and MORX-41
Behdad Esfahbod [Wed, 23 Jan 2019 19:36:07 +0000 (20:36 +0100)]
[AAT] Remove mark_set from InsertionChain
Behdad Esfahbod [Wed, 23 Jan 2019 19:30:48 +0000 (20:30 +0100)]
[test/text-rendering-tests] Update from upstream
Behdad Esfahbod [Tue, 22 Jan 2019 15:36:00 +0000 (16:36 +0100)]
More of previous
Behdad Esfahbod [Tue, 22 Jan 2019 15:30:07 +0000 (16:30 +0100)]
Fix sign-compare error resulted from promoting unsigned integers to signed larger ints
Clang and gcc know not to warn in these cases, but not nonmainstream compilers
Behdad Esfahbod [Tue, 22 Jan 2019 11:55:29 +0000 (12:55 +0100)]
Cast HB_UNTAG results to uint8_t
Behdad Esfahbod [Tue, 22 Jan 2019 11:52:23 +0000 (12:52 +0100)]
More -Wcast-error fix
Behdad Esfahbod [Tue, 22 Jan 2019 11:45:40 +0000 (12:45 +0100)]
Better fix for -Wcast-align errors
Behdad Esfahbod [Tue, 22 Jan 2019 11:43:12 +0000 (12:43 +0100)]
More -Wcast-error fixes
Behdad Esfahbod [Tue, 22 Jan 2019 11:40:18 +0000 (12:40 +0100)]
pragma GCC diagnostic error "-Wsign-compare"
Behdad Esfahbod [Tue, 22 Jan 2019 11:34:05 +0000 (12:34 +0100)]
Fix cast-align error
If compiler doesn't inline StructAtOffset, this was an error since we
only disable cast-align at call-site. So, move the cast out.
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:146:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:147:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Behdad Esfahbod [Tue, 22 Jan 2019 11:29:05 +0000 (12:29 +0100)]
[CI] Remove gcc 4.2 bots
We don't support that version anymore.
Behdad Esfahbod [Tue, 22 Jan 2019 11:15:23 +0000 (12:15 +0100)]
Convert all other enum class consts to static constexpr
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod [Tue, 22 Jan 2019 11:11:24 +0000 (12:11 +0100)]
Convert unsigned enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod [Tue, 22 Jan 2019 11:08:57 +0000 (12:08 +0100)]
Convert tag enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod [Tue, 22 Jan 2019 11:07:43 +0000 (12:07 +0100)]
Convert boolean enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod [Tue, 22 Jan 2019 11:05:35 +0000 (12:05 +0100)]
Make some enum constants unsigned
Behdad Esfahbod [Tue, 22 Jan 2019 11:02:06 +0000 (12:02 +0100)]
Whitespace
Behdad Esfahbod [Tue, 22 Jan 2019 11:00:44 +0000 (12:00 +0100)]
pragma GCC diagnostic error "-Wvla"
Alfie John [Tue, 22 Jan 2019 08:58:36 +0000 (19:58 +1100)]
Fix grammar
Alfie John [Tue, 22 Jan 2019 00:03:02 +0000 (00:03 +0000)]
Grammar fix
Behdad Esfahbod [Mon, 21 Jan 2019 01:09:10 +0000 (20:09 -0500)]
Remove wrongly added files
Behdad Esfahbod [Mon, 21 Jan 2019 00:51:08 +0000 (19:51 -0500)]
Use enum for class constant
Behdad Esfahbod [Mon, 21 Jan 2019 00:49:59 +0000 (19:49 -0500)]
[CFF] Use enum for tableTag
Behdad Esfahbod [Mon, 21 Jan 2019 00:47:52 +0000 (19:47 -0500)]
Use static constexpr for large class constants
Khaled Hosny [Mon, 21 Jan 2019 14:44:48 +0000 (16:44 +0200)]
Regular spaces will do
Alfie John [Mon, 21 Jan 2019 05:00:01 +0000 (05:00 +0000)]
Adding leading space for code example
Alfie John [Mon, 21 Jan 2019 04:54:27 +0000 (04:54 +0000)]
Fix description of example
Alfie John [Mon, 21 Jan 2019 04:47:05 +0000 (04:47 +0000)]
Added option to build docs to docs
Behdad Esfahbod [Thu, 10 Jan 2019 05:24:51 +0000 (21:24 -0800)]
Whitespace
Behdad Esfahbod [Thu, 10 Jan 2019 05:00:13 +0000 (21:00 -0800)]
Use more iter pipelines
Behdad Esfahbod [Thu, 10 Jan 2019 04:58:25 +0000 (20:58 -0800)]
[algs] Add hb_iter()
Makes it nicer in pipelines.
Behdad Esfahbod [Thu, 10 Jan 2019 04:54:21 +0000 (20:54 -0800)]
Use iter pipelines more
Behdad Esfahbod [Thu, 10 Jan 2019 03:49:13 +0000 (19:49 -0800)]
[iter] Default projection to identity
Behdad Esfahbod [Thu, 10 Jan 2019 03:42:41 +0000 (19:42 -0800)]
[algs] Add hb_identity
Behdad Esfahbod [Thu, 10 Jan 2019 00:19:40 +0000 (16:19 -0800)]
Fix unused-variable warnings
inline variables are not C++11, so mark them unused...
Behdad Esfahbod [Wed, 9 Jan 2019 21:28:00 +0000 (13:28 -0800)]
WIP
Behdad Esfahbod [Wed, 9 Jan 2019 20:42:01 +0000 (12:42 -0800)]
[iter] Use forwarding references
Behdad Esfahbod [Wed, 9 Jan 2019 20:36:17 +0000 (12:36 -0800)]
[algs] Fix hb_first() / hb_second()
Behdad Esfahbod [Wed, 9 Jan 2019 20:35:45 +0000 (12:35 -0800)]
[iter] Misc fixes to get piping almost work
Behdad Esfahbod [Wed, 9 Jan 2019 20:22:14 +0000 (12:22 -0800)]
Change hb_first() and hb_second() to function objects
Behdad Esfahbod [Wed, 9 Jan 2019 19:32:33 +0000 (11:32 -0800)]
[iter] Add hb_filter()
Untested.
Behdad Esfahbod [Wed, 9 Jan 2019 19:15:49 +0000 (11:15 -0800)]
[iter] Add hb_map()
Untested.
Behdad Esfahbod [Wed, 9 Jan 2019 19:00:32 +0000 (11:00 -0800)]
[iter] Make hb_zip() take const references
Behdad Esfahbod [Wed, 9 Jan 2019 18:45:53 +0000 (10:45 -0800)]
Minor rename
Behdad Esfahbod [Wed, 9 Jan 2019 18:18:49 +0000 (10:18 -0800)]
Remove unused Coverage::iter_t::get_coverage()
Behdad Esfahbod [Wed, 9 Jan 2019 18:17:33 +0000 (10:17 -0800)]
Use hb_zip() moooore
Behdad Esfahbod [Wed, 9 Jan 2019 18:06:48 +0000 (10:06 -0800)]
Use hb_zip() some mooore
Behdad Esfahbod [Wed, 9 Jan 2019 18:01:28 +0000 (10:01 -0800)]
Use hb_zip() some moore
Behdad Esfahbod [Wed, 9 Jan 2019 17:57:36 +0000 (09:57 -0800)]
Use hb_zip() some more
Behdad Esfahbod [Wed, 9 Jan 2019 17:52:10 +0000 (09:52 -0800)]
Use hb_zip() some