platform/upstream/libHarfBuzzSharp.git
6 years agoAdded CFF2 Subr nullifier
Michiharu Ariza [Fri, 17 Aug 2018 20:13:18 +0000 (13:13 -0700)]
Added CFF2 Subr nullifier

along with CFF2 charstring interpreter
factored out common code between CFF1 & CFF2 to CSInterpreter
moved fetch_op from Interpreter to InterpEnv
misc code clean up & bug fixes

6 years agorenamed CFF::Index to CFF::CFFIndex
Michiharu Ariza [Thu, 16 Aug 2018 15:03:46 +0000 (08:03 -0700)]
renamed CFF::Index to CFF::CFFIndex

to avoid confusion with OT::Index

6 years agotreat h/vstem the same as h/vstemhm
Michiharu Ariza [Thu, 16 Aug 2018 07:59:46 +0000 (00:59 -0700)]
treat h/vstem the same as h/vstemhm

6 years agorenamed OT::cff to OT::cff1 for consistency
Michiharu Ariza [Thu, 16 Aug 2018 07:25:57 +0000 (00:25 -0700)]
renamed OT::cff to OT::cff1 for consistency

along with HB_OT_TAG_cff1

6 years agorenamed CFF version 1 structs and sources to CFF1 from CFF
Michiharu Ariza [Thu, 16 Aug 2018 07:13:09 +0000 (00:13 -0700)]
renamed CFF version 1 structs and sources to CFF1 from CFF

"CFF" is used for shared structs & sources between CFF1 & CFF2
except OT:cff is for CFF version 1 table

6 years agofix build attempt ^7
Michiharu Ariza [Wed, 15 Aug 2018 22:53:50 +0000 (15:53 -0700)]
fix build attempt ^7

6 years agofix build attempt ^6
Michiharu Ariza [Wed, 15 Aug 2018 22:45:17 +0000 (15:45 -0700)]
fix build attempt ^6

6 years agofix build attempt ^5
Michiharu Ariza [Wed, 15 Aug 2018 22:30:24 +0000 (15:30 -0700)]
fix build attempt ^5

6 years agoMerge branch 'master' into cff-subset
Michiharu Ariza [Wed, 15 Aug 2018 22:00:55 +0000 (15:00 -0700)]
Merge branch 'master' into cff-subset

6 years agofix build attempt ^4
Michiharu Ariza [Wed, 15 Aug 2018 22:00:32 +0000 (15:00 -0700)]
fix build attempt ^4

6 years agofix build attempt ^3
Michiharu Ariza [Wed, 15 Aug 2018 20:15:08 +0000 (13:15 -0700)]
fix build attempt ^3

6 years agofix build attempt ^2
Michiharu Ariza [Wed, 15 Aug 2018 20:04:43 +0000 (13:04 -0700)]
fix build attempt ^2

6 years agofix build
Michiharu Ariza [Wed, 15 Aug 2018 19:15:55 +0000 (12:15 -0700)]
fix build

6 years agoCFF Subrs subsetting
Michiharu Ariza [Wed, 15 Aug 2018 19:00:19 +0000 (12:00 -0700)]
CFF Subrs subsetting

Unreferenced subroutines are nullified (not removed) in a subset font

Separate Interpreter struct from hb-ot-cff-common-private.hh in a set of four header files, augmented for CharString (CS):
hb-cff-interp-common-private.hh
hb-cff-interp-dict-common-private.hh
hb-cff-interp-cs-common-private.hh
hb-cff-interp-cs.hh

Interpreter runtime is separated off as a new struct InterpEnv sub-classed differently for Dict and CharString (CS)

6 years agoAdd guard around free_static_C_locale
Emil A Eklund [Tue, 14 Aug 2018 21:47:20 +0000 (14:47 -0700)]
Add guard around free_static_C_locale

Add HB_USE_ATEXIT guard around free_static_C_locale missed by previous
commit.

6 years agoGuard free_static function definitions with macro
Emil A Eklund [Tue, 14 Aug 2018 20:50:24 +0000 (13:50 -0700)]
Guard free_static function definitions with macro

Add HB_USE_ATEXIT macros around free_static function definitions to
avoid unused function compiler warnings/errors.

6 years ago1.8.8
Behdad Esfahbod [Tue, 14 Aug 2018 17:59:34 +0000 (10:59 -0700)]
1.8.8

6 years ago[icu] Pass normalizer instance down as user_data
Behdad Esfahbod [Tue, 14 Aug 2018 00:02:21 +0000 (17:02 -0700)]
[icu] Pass normalizer instance down as user_data

6 years agoDon't add reference in get_unicode_funcs() functions
Behdad Esfahbod [Mon, 13 Aug 2018 17:30:41 +0000 (10:30 -0700)]
Don't add reference in get_unicode_funcs() functions

Users don't expect a new reference returned from a get() function.
Indeed, all users of that API I foud where NOT destroying the reference.
Just change the implementations to NOT return a reference.

This applies to the following APIs:
hb_unicode_funcs_get_default()
hb_glib_get_unicode_funcs()
hb_icu_get_unicode_funcs()

Fixes https://github.com/harfbuzz/harfbuzz/issues/1134

6 years ago[uniscribe] Use lazy loader
Behdad Esfahbod [Mon, 13 Aug 2018 01:20:53 +0000 (18:20 -0700)]
[uniscribe] Use lazy loader

Fixes https://github.com/harfbuzz/harfbuzz/issues/1129

6 years agoAnother clang bot fix
Behdad Esfahbod [Mon, 13 Aug 2018 01:10:59 +0000 (18:10 -0700)]
Another clang bot fix

6 years agoSilence clang
Behdad Esfahbod [Mon, 13 Aug 2018 00:47:59 +0000 (17:47 -0700)]
Silence clang

6 years ago[lazy] Use for C_locale
Behdad Esfahbod [Mon, 13 Aug 2018 00:42:16 +0000 (17:42 -0700)]
[lazy] Use for C_locale

6 years ago[lazy] Port more
Behdad Esfahbod [Mon, 13 Aug 2018 00:32:10 +0000 (17:32 -0700)]
[lazy] Port more

6 years ago[lazy] Rename free()
Behdad Esfahbod [Mon, 13 Aug 2018 00:19:55 +0000 (17:19 -0700)]
[lazy] Rename free()

6 years ago[lazy] Port more to it
Behdad Esfahbod [Mon, 13 Aug 2018 00:14:32 +0000 (17:14 -0700)]
[lazy] Port more to it

6 years ago[lazy] Make hb_lazy_loader_t<> more usable
Behdad Esfahbod [Sun, 12 Aug 2018 23:57:06 +0000 (16:57 -0700)]
[lazy] Make hb_lazy_loader_t<> more usable

6 years ago[lazy] Minor
Behdad Esfahbod [Sun, 12 Aug 2018 23:40:08 +0000 (16:40 -0700)]
[lazy] Minor

6 years agoMinor
Behdad Esfahbod [Sun, 12 Aug 2018 23:33:48 +0000 (16:33 -0700)]
Minor

6 years ago[icu] Use get_relaxed for normalizer access
Behdad Esfahbod [Sun, 12 Aug 2018 23:30:39 +0000 (16:30 -0700)]
[icu] Use get_relaxed for normalizer access

We've had the proper barriers already.  No need for more with every access.

6 years ago[icu] Fix for breakage after recent change
Behdad Esfahbod [Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)]
[icu] Fix for breakage after recent change

6 years ago[lazy] Use for ft_library
Behdad Esfahbod [Sun, 12 Aug 2018 23:20:11 +0000 (16:20 -0700)]
[lazy] Use for ft_library

6 years ago[lazy] Add .free()
Behdad Esfahbod [Sun, 12 Aug 2018 23:00:13 +0000 (16:00 -0700)]
[lazy] Add .free()

6 years ago[ot/ft] Port font_funcs statis to lazy-loader
Behdad Esfahbod [Sun, 12 Aug 2018 20:46:53 +0000 (13:46 -0700)]
[ot/ft] Port font_funcs statis to lazy-loader

6 years ago[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader
Behdad Esfahbod [Sun, 12 Aug 2018 20:39:01 +0000 (13:39 -0700)]
[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader

6 years ago[lazy] Allow calling fini() multiple times
Behdad Esfahbod [Sun, 12 Aug 2018 20:16:40 +0000 (13:16 -0700)]
[lazy] Allow calling fini() multiple times

6 years ago[lazy] More
Behdad Esfahbod [Sun, 12 Aug 2018 20:12:29 +0000 (13:12 -0700)]
[lazy] More

6 years ago[lazy] More shuffle
Behdad Esfahbod [Sun, 12 Aug 2018 19:40:24 +0000 (12:40 -0700)]
[lazy] More shuffle

6 years agoMinor
Behdad Esfahbod [Sun, 12 Aug 2018 19:27:47 +0000 (12:27 -0700)]
Minor

6 years agoAdd explicit_operator
Behdad Esfahbod [Sun, 12 Aug 2018 19:21:56 +0000 (12:21 -0700)]
Add explicit_operator

Fixes https://github.com/harfbuzz/harfbuzz/issues/1127

6 years agoRename
Behdad Esfahbod [Sun, 12 Aug 2018 19:09:20 +0000 (12:09 -0700)]
Rename

6 years agoSupport _ in feature ids
Martin Hosken [Thu, 9 Aug 2018 08:16:32 +0000 (15:16 +0700)]
Support _ in feature ids

6 years agoMerge branch 'master' into cff-subset
Michiharu Ariza [Fri, 10 Aug 2018 20:41:42 +0000 (13:41 -0700)]
Merge branch 'master' into cff-subset

6 years agofixed TRACE build failure
Michiharu Ariza [Fri, 10 Aug 2018 20:07:53 +0000 (13:07 -0700)]
fixed TRACE build failure

6 years agofixed inclusion of excluded Private & local Subrs
Michiharu Ariza [Fri, 10 Aug 2018 19:55:22 +0000 (12:55 -0700)]
fixed inclusion of excluded Private & local Subrs

It was bloating a multi-FD subset font unnecessarily
defined a wrapper struct FDMap for fdmap

6 years agoAdded CFF support
Michiharu Ariza [Fri, 10 Aug 2018 18:07:07 +0000 (11:07 -0700)]
Added CFF support

Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh
Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit
Misc code cleanup & bug fixes

6 years ago[coretext] Another try
Behdad Esfahbod [Thu, 9 Aug 2018 08:02:02 +0000 (01:02 -0700)]
[coretext] Another try

6 years agoFix coretext build (hopefully)
Behdad Esfahbod [Thu, 9 Aug 2018 07:58:17 +0000 (00:58 -0700)]
Fix coretext build (hopefully)

6 years agoRevert "[iter] Make operator bool explicit"
Behdad Esfahbod [Thu, 9 Aug 2018 07:56:28 +0000 (00:56 -0700)]
Revert "[iter] Make operator bool explicit"

This reverts commit 66920a6bace7c54c8166c4ed938b6ffc5fabcf2b.

Some of our bots (Oracle Studio and Apple gcc 4.2) do not allow
explicit except for constructors.

https://github.com/harfbuzz/harfbuzz/issues/1127

6 years ago[atomic] More
Behdad Esfahbod [Thu, 9 Aug 2018 07:53:25 +0000 (00:53 -0700)]
[atomic] More

6 years agoFix lazy_loader fini()
Behdad Esfahbod [Thu, 9 Aug 2018 07:28:40 +0000 (00:28 -0700)]
Fix lazy_loader fini()

Was creating object even if wasn't there.

6 years ago[atomic] Add hb_atomic_ptr_t<> and port all uses
Behdad Esfahbod [Thu, 9 Aug 2018 07:22:37 +0000 (00:22 -0700)]
[atomic] Add hb_atomic_ptr_t<> and port all uses

Found and fixed a couple bugs.

Found a couple multithreading issues.  Marked them with "XXX-MT-bug".

6 years ago[atomic] Remove hb_atomic_int_impl_t now that it's always int
Behdad Esfahbod [Thu, 9 Aug 2018 05:51:35 +0000 (22:51 -0700)]
[atomic] Remove hb_atomic_int_impl_t now that it's always int

6 years ago[atomic] Unify typedef
Behdad Esfahbod [Thu, 9 Aug 2018 05:45:49 +0000 (22:45 -0700)]
[atomic] Unify typedef

Removes volatile from fallback implementation.  That was handwavy
anyway.

6 years ago[atomic] Change Mac atomic int type to int
Behdad Esfahbod [Thu, 9 Aug 2018 05:43:53 +0000 (22:43 -0700)]
[atomic] Change Mac atomic int type to int

If ever int is not 32bit, we'll fix this...

6 years ago[atomic] Change Windows atomic int type to int
Behdad Esfahbod [Thu, 9 Aug 2018 05:42:33 +0000 (22:42 -0700)]
[atomic] Change Windows atomic int type to int

6 years ago[atomic] Change Solaris atomic int to signed
Behdad Esfahbod [Thu, 9 Aug 2018 05:40:10 +0000 (22:40 -0700)]
[atomic] Change Solaris atomic int to signed

6 years ago1.8.7
Behdad Esfahbod [Thu, 9 Aug 2018 04:54:08 +0000 (21:54 -0700)]
1.8.7

6 years agoFix previous commit to use atomic operations
Behdad Esfahbod [Thu, 9 Aug 2018 05:01:04 +0000 (22:01 -0700)]
Fix previous commit to use atomic operations

6 years agoFix assertion failure
Behdad Esfahbod [Thu, 9 Aug 2018 04:42:18 +0000 (21:42 -0700)]
Fix assertion failure

https://bugzilla.mozilla.org/show_bug.cgi?id=1476334

6 years ago1.8.6
Behdad Esfahbod [Tue, 7 Aug 2018 16:55:42 +0000 (09:55 -0700)]
1.8.6

6 years agoAdd +hb_font_get_glyph_advances_for_direction
Behdad Esfahbod [Tue, 7 Aug 2018 16:52:06 +0000 (09:52 -0700)]
Add +hb_font_get_glyph_advances_for_direction

New API:
+hb_font_get_glyph_advances_for_direction

6 years agoActually add hb_font_get_glyph_[hv]_advances
Behdad Esfahbod [Tue, 7 Aug 2018 16:47:00 +0000 (09:47 -0700)]
Actually add hb_font_get_glyph_[hv]_advances

New API:
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_v_advances

6 years agoMinor
Behdad Esfahbod [Tue, 7 Aug 2018 16:44:01 +0000 (09:44 -0700)]
Minor

6 years agoRemove get_advances_nil and alias it to get_advances_default
Behdad Esfahbod [Tue, 7 Aug 2018 16:37:52 +0000 (09:37 -0700)]
Remove get_advances_nil and alias it to get_advances_default

6 years ago[iter] Make operator bool explicit
Behdad Esfahbod [Mon, 6 Aug 2018 22:32:13 +0000 (15:32 -0700)]
[iter] Make operator bool explicit

We would need to write:

  for (Iter<T> it (...); bool (t); t++)

instead of:

  for (Iter<T> it (...); t; t++)

But I think it's an improvement in code readability in the long term.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1127

6 years agoMerge branch 'master' into cff-subset
Michiharu Ariza [Mon, 6 Aug 2018 18:23:50 +0000 (11:23 -0700)]
Merge branch 'master' into cff-subset

6 years agoremoved CMakeCache.txt
Michiharu Ariza [Mon, 6 Aug 2018 18:13:06 +0000 (11:13 -0700)]
removed CMakeCache.txt

6 years agoSilence Codacy
Michiharu Ariza [Mon, 6 Aug 2018 17:44:12 +0000 (10:44 -0700)]
Silence Codacy

6 years agosubset FDSelect and FDArray
Michiharu Ariza [Mon, 6 Aug 2018 17:04:53 +0000 (10:04 -0700)]
subset FDSelect and FDArray

Added a set of sources hb-subset-cff-common-private.cc & .hh for FDSelect subseting code.
Added FDSelect format 4 (CFF2 only) support. Shared its implementation with format 3 as a template.

6 years agoAdd batch advance width callback function
Behdad Esfahbod [Mon, 6 Aug 2018 16:45:17 +0000 (09:45 -0700)]
Add batch advance width callback function

New API:
+hb_font_funcs_set_glyph_h_advances_func
+hb_font_funcs_set_glyph_v_advances_func
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_h_advances_func_t
+hb_font_get_glyph_v_advances
+hb_font_get_glyph_v_advances_func_t

6 years agobatchwidth
Koji Ishii [Wed, 1 Aug 2018 04:01:08 +0000 (13:01 +0900)]
batchwidth

6 years agoRemove most uses of direct comparison to Null objects
Behdad Esfahbod [Mon, 6 Aug 2018 13:30:12 +0000 (06:30 -0700)]
Remove most uses of direct comparison to Null objects

6 years agoPort _nil objects to Null() machinery
Behdad Esfahbod [Mon, 6 Aug 2018 13:17:48 +0000 (06:17 -0700)]
Port _nil objects to Null() machinery

Finally, unified!

6 years ago[BASE] Rename horzi/vert to h/v
Behdad Esfahbod [Mon, 6 Aug 2018 12:53:35 +0000 (05:53 -0700)]
[BASE] Rename horzi/vert to h/v

6 years ago[BASE] Misc fixes
Behdad Esfahbod [Mon, 6 Aug 2018 12:52:12 +0000 (05:52 -0700)]
[BASE] Misc fixes

The code was badly broken.  In better shape now, but still, needs
a full review before ever working.

6 years agoChange null-pool specialization to min_size again
Behdad Esfahbod [Mon, 6 Aug 2018 12:29:15 +0000 (05:29 -0700)]
Change null-pool specialization to min_size again

6 years agoMove Null system to hb-null.hh
Behdad Esfahbod [Mon, 6 Aug 2018 12:01:52 +0000 (05:01 -0700)]
Move Null system to hb-null.hh

6 years agoRemove unused macros
Behdad Esfahbod [Mon, 6 Aug 2018 11:58:34 +0000 (04:58 -0700)]
Remove unused macros

6 years agoMinor
Behdad Esfahbod [Mon, 6 Aug 2018 11:54:31 +0000 (04:54 -0700)]
Minor

6 years agoMinor
Behdad Esfahbod [Mon, 6 Aug 2018 11:51:38 +0000 (04:51 -0700)]
Minor

6 years agoMove hb_vector_t to hb-vector-private.hh
Behdad Esfahbod [Mon, 6 Aug 2018 11:42:46 +0000 (04:42 -0700)]
Move hb_vector_t to hb-vector-private.hh

6 years agoMove some more code around
Behdad Esfahbod [Mon, 6 Aug 2018 11:32:51 +0000 (04:32 -0700)]
Move some more code around

6 years agoMove null data definitions to hb-static.cc
Behdad Esfahbod [Mon, 6 Aug 2018 04:41:52 +0000 (21:41 -0700)]
Move null data definitions to hb-static.cc

Also remove "    " null data for Tag.  Just use zeroes.

6 years agoMinor
Behdad Esfahbod [Sat, 4 Aug 2018 02:55:09 +0000 (19:55 -0700)]
Minor

6 years agoMake lazy loader deal with OOM
Behdad Esfahbod [Sat, 4 Aug 2018 02:54:33 +0000 (19:54 -0700)]
Make lazy loader deal with OOM

6 years agoRename
Behdad Esfahbod [Sat, 4 Aug 2018 00:32:00 +0000 (17:32 -0700)]
Rename

6 years ago[ot] Comment
Behdad Esfahbod [Sat, 4 Aug 2018 00:06:42 +0000 (17:06 -0700)]
[ot] Comment

6 years ago[ot] Add misc tables to tables_t
Behdad Esfahbod [Sat, 4 Aug 2018 00:03:32 +0000 (17:03 -0700)]
[ot] Add misc tables to tables_t

Most unused.

6 years ago[ot] Move GDEF into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:57:40 +0000 (16:57 -0700)]
[ot] Move GDEF into tables_t

6 years ago[ot] Move GSUB/GPOS into tables_t
Behdad Esfahbod [Fri, 3 Aug 2018 23:45:57 +0000 (16:45 -0700)]
[ot] Move GSUB/GPOS into tables_t

6 years ago[ot] More shuffling
Behdad Esfahbod [Fri, 3 Aug 2018 23:34:25 +0000 (16:34 -0700)]
[ot] More shuffling

Misc. table loading now properly automated.

6 years ago[ot] Minor
Behdad Esfahbod [Fri, 3 Aug 2018 23:22:16 +0000 (16:22 -0700)]
[ot] Minor

6 years agosilence gcc
Michiharu Ariza [Fri, 3 Aug 2018 22:00:37 +0000 (15:00 -0700)]
silence gcc

6 years agoRemoved parsed hint fields from CFF2PrivateDictValues
Michiharu Ariza [Fri, 3 Aug 2018 21:35:09 +0000 (14:35 -0700)]
Removed parsed hint fields from CFF2PrivateDictValues

Instead moved & stored uniformly in values vector (renamed from opstrs)
This should be fine as we aren't likely going to use them as hints after all
Templatized DictValues whether to parse them out
For subsetter, they aren't parsed

6 years ago[ot] Move code around
Behdad Esfahbod [Fri, 3 Aug 2018 06:13:19 +0000 (23:13 -0700)]
[ot] Move code around

6 years ago[ot] Use switch for checking for blacklisted GDEF tables
Behdad Esfahbod [Fri, 3 Aug 2018 06:04:42 +0000 (23:04 -0700)]
[ot] Use switch for checking for blacklisted GDEF tables

Faster / more compact code.

6 years ago[ot] In GDEF blacklisting logic, remove the glyph index check for Times
Behdad Esfahbod [Fri, 3 Aug 2018 05:56:42 +0000 (22:56 -0700)]
[ot] In GDEF blacklisting logic, remove the glyph index check for Times

Just blacklist based on table sizes like we do for other fonts.

6 years agoMove code around
Behdad Esfahbod [Fri, 3 Aug 2018 03:04:37 +0000 (20:04 -0700)]
Move code around

6 years agotemplatized CFF2 accelerator for lean Private dict interpretting for subset
Michiharu Ariza [Thu, 2 Aug 2018 23:28:10 +0000 (16:28 -0700)]
templatized CFF2 accelerator for lean Private dict interpretting for subset

also fixed local subrs serialization