Behdad Esfahbod [Wed, 30 Jan 2019 23:07:09 +0000 (15:07 -0800)]
Merge branch 'master' into iter
Behdad Esfahbod [Wed, 30 Jan 2019 23:06:22 +0000 (15:06 -0800)]
[configure] Print compiler version info in report
Behdad Esfahbod [Wed, 30 Jan 2019 23:06:22 +0000 (15:06 -0800)]
[configure] Print compiler version info in report
Behdad Esfahbod [Wed, 30 Jan 2019 23:02:29 +0000 (15:02 -0800)]
[ci] Switch clang-O3-O0 bot to Ubuntu image
https://github.com/harfbuzz/harfbuzz/issues/1566
Behdad Esfahbod [Wed, 30 Jan 2019 22:54:23 +0000 (14:54 -0800)]
[iter] Warning fix
Not sure why I don't get it, but this warning:
warning: base class ‘struct hb_iter_fallback_mixin_t<hb_array_t<const OT::UVSMapping>, const OT::UVSMapping&>’ should be explicitly initialized in the copy constructor [-Wextra]
Behdad Esfahbod [Wed, 30 Jan 2019 22:42:48 +0000 (14:42 -0800)]
[ci] Disable -Wunused-template on -Weverything bot
./hb-algs.hh:37:3: error: unused function template 'operator()' [-Werror,-Wunused-template]
operator () (const T& v) const { return v; }
^
Behdad Esfahbod [Wed, 30 Jan 2019 22:17:59 +0000 (17:17 -0500)]
Merge pull request #1564 from googlefonts/retain_gids
[subset] Add --retain-gids option to the subsetter.
Behdad Esfahbod [Wed, 30 Jan 2019 21:54:15 +0000 (13:54 -0800)]
2.3.1
Behdad Esfahbod [Wed, 30 Jan 2019 01:15:12 +0000 (17:15 -0800)]
[iter] Whitespace
Behdad Esfahbod [Wed, 30 Jan 2019 01:10:19 +0000 (17:10 -0800)]
[iter] Add hb_iter_with_fallback_t instead
Behdad Esfahbod [Tue, 29 Jan 2019 21:55:23 +0000 (13:55 -0800)]
[iter] Add hb_iter_with_mixin_t<>
Behdad Esfahbod [Tue, 29 Jan 2019 21:44:39 +0000 (13:44 -0800)]
[iter] Export operator << / >>
Behdad Esfahbod [Tue, 29 Jan 2019 21:39:19 +0000 (13:39 -0800)]
[iter] Rename
Garret Rieger [Tue, 29 Jan 2019 02:12:19 +0000 (18:12 -0800)]
[subset] Add expected files for retain-gids integration tests.
Garret Rieger [Tue, 29 Jan 2019 02:10:56 +0000 (18:10 -0800)]
[subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
Garret Rieger [Tue, 29 Jan 2019 01:43:42 +0000 (17:43 -0800)]
[subset] Add retain-gids option to hb-subset executable.
Garret Rieger [Tue, 29 Jan 2019 01:43:11 +0000 (17:43 -0800)]
[subset] Add some subsetting integration tests covering retain gids.
Garret Rieger [Tue, 29 Jan 2019 01:05:04 +0000 (17:05 -0800)]
[subset] A few small fixes for the new subset plan api.
Garret Rieger [Tue, 29 Jan 2019 00:59:15 +0000 (16:59 -0800)]
[subset] Update hb-subset-plan.cc to match hb-subset-plan.hh.
Garret Rieger [Tue, 29 Jan 2019 00:53:01 +0000 (16:53 -0800)]
[subset] Update hb-subset-glyf.cc to use new hb-subset-plan API.
Garret Rieger [Tue, 29 Jan 2019 00:51:27 +0000 (16:51 -0800)]
[subset] Update gsub to use glyphset() method of subset plan.
Garret Rieger [Tue, 29 Jan 2019 00:50:56 +0000 (16:50 -0800)]
[subset] Correct maxp num glyph's to use new subset plan method.
Garret Rieger [Tue, 29 Jan 2019 00:50:20 +0000 (16:50 -0800)]
[subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
Garret Rieger [Tue, 29 Jan 2019 00:15:06 +0000 (16:15 -0800)]
Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation.
Garret Rieger [Sat, 26 Jan 2019 02:04:41 +0000 (18:04 -0800)]
Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
Garret Rieger [Sat, 26 Jan 2019 02:03:47 +0000 (18:03 -0800)]
Remove glyph array from subset plan, make num_glyphs and glyphset private.
Garret Rieger [Sat, 19 Jan 2019 02:33:21 +0000 (18:33 -0800)]
[subset] Fix hdmx subsetting when retain gids is enabled.
Garret Rieger [Sat, 19 Jan 2019 01:49:35 +0000 (17:49 -0800)]
[subset] Compute num_glyphs during subset plan construction.
Update maxp to use the correct num glyphs.
Garret Rieger [Sat, 19 Jan 2019 01:36:32 +0000 (17:36 -0800)]
[subset] Add unit test for glyf subsetting and retain gids.
Garret Rieger [Sat, 19 Jan 2019 00:41:08 +0000 (16:41 -0800)]
[subset] fix failure to init instruction ranges values for an invalid glyph.
Garret Rieger [Fri, 18 Jan 2019 23:11:26 +0000 (15:11 -0800)]
[subset] Do some refactoring in hb-subset-glyf.cc.
- Extract code out into helper methods in several places.
- Bundle loca address, size and is short into a struct.
Garret Rieger [Fri, 18 Jan 2019 02:55:56 +0000 (18:55 -0800)]
Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
Behdad Esfahbod [Tue, 29 Jan 2019 02:26:23 +0000 (21:26 -0500)]
Move hb_addressof() to hb-meta.hh
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