platform/upstream/libHarfBuzzSharp.git
6 years agoVerbose fail when something is wrong with hb-shape/hb-view input font file (#1059)
Ebrahim Byagowi [Sun, 17 Jun 2018 12:34:55 +0000 (17:04 +0430)]
Verbose fail when something is wrong with hb-shape/hb-view input font file (#1059)

This checks if the blob isn't empty and uses `hb_face_count`
to see if the font file passes the simple font file sanitization
so can detect if the input is actually a font and checks also
whether input font-index is out of range.

6 years agoFix reading fonts from stdin (#1060)
Ebrahim Byagowi [Sun, 17 Jun 2018 12:19:34 +0000 (16:49 +0430)]
Fix reading fonts from stdin (#1060)

We were passing the font path directly to freetype so rendering
was broken when we are getting the font from stdin.

This fixes it by using FT_New_Memory_Face instead.

This fixes:
* build/util/hb-view /dev/stdin text < font.ttf
* build/util/hb-view - text < font.ttf
* cat font.ttf | build/util/hb-view - text

but doesn't work on
* cat font.ttf | build/util/hb-view /dev/stdin text

which I will try to fix separately.

6 years ago1.8.1
Behdad Esfahbod [Tue, 12 Jun 2018 23:38:04 +0000 (19:38 -0400)]
1.8.1

6 years ago[docs] Enlist misc new symbols
Behdad Esfahbod [Tue, 12 Jun 2018 23:32:04 +0000 (19:32 -0400)]
[docs] Enlist misc new symbols

6 years agoMove hb-version.h generation to Makefile
Behdad Esfahbod [Tue, 12 Jun 2018 23:20:20 +0000 (19:20 -0400)]
Move hb-version.h generation to Makefile

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

Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h contents.

6 years ago[subset] Remove HB_SUBSET_BUILTIN
Behdad Esfahbod [Tue, 12 Jun 2018 22:24:54 +0000 (18:24 -0400)]
[subset] Remove HB_SUBSET_BUILTIN

Just include hb-static.cc in libharfbuzz-subset.so source list as
well.  Those building it built-in will include hb-static.cc once
already.  No need for any gymnastics.

6 years ago[substitute-closure] Rename function for clarity
Behdad Esfahbod [Tue, 12 Jun 2018 03:24:41 +0000 (23:24 -0400)]
[substitute-closure] Rename function for clarity

6 years agoWhitespace
Behdad Esfahbod [Tue, 12 Jun 2018 03:23:40 +0000 (23:23 -0400)]
Whitespace

6 years ago[vector] Always 0-fill new items
Behdad Esfahbod [Tue, 12 Jun 2018 02:11:45 +0000 (22:11 -0400)]
[vector] Always 0-fill new items

6 years agoFix compiler warning re reordering of initializations
Behdad Esfahbod [Tue, 12 Jun 2018 02:05:08 +0000 (22:05 -0400)]
Fix compiler warning re reordering of initializations

6 years agoStyle
Behdad Esfahbod [Tue, 12 Jun 2018 02:02:38 +0000 (22:02 -0400)]
Style

6 years ago[hb-set] Additional testcase for hb-set-intersect.
Jonathan Kew [Tue, 12 Jun 2018 01:09:35 +0000 (18:09 -0700)]
[hb-set] Additional testcase for hb-set-intersect.

6 years ago[hb-set] Don't shrink vectors until after processing their contents.
Jonathan Kew [Tue, 12 Jun 2018 03:55:14 +0000 (20:55 -0700)]
[hb-set] Don't shrink vectors until after processing their contents.

Fixes #1054.

6 years agoFetch the updated dwrite_1.h header from a better place
Ebrahim Byagowi [Sun, 10 Jun 2018 23:17:43 +0000 (03:47 +0430)]
Fetch the updated dwrite_1.h header from a better place

Following to https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc

6 years agoMore fixes for SunStudio 12.6 build
Behdad Esfahbod [Sun, 10 Jun 2018 21:22:38 +0000 (17:22 -0400)]
More fixes for SunStudio 12.6 build

Followup to https://github.com/harfbuzz/harfbuzz/pull/1053

6 years agoFix SunStudio 12.6 build (#1053)
prrace [Sat, 9 Jun 2018 23:04:28 +0000 (16:04 -0700)]
Fix SunStudio 12.6 build (#1053)

6 years ago[subset] Use REPLACEME instead of version.
Garret Rieger [Thu, 7 Jun 2018 22:55:45 +0000 (15:55 -0700)]
[subset] Use REPLACEME instead of version.

6 years ago[subset] Move variable declaration out of loop.
Garret Rieger [Thu, 7 Jun 2018 22:54:19 +0000 (15:54 -0700)]
[subset] Move variable declaration out of loop.

6 years ago[subset] Add test cases for gsub closure in subsetting.
Garret Rieger [Thu, 7 Jun 2018 22:32:52 +0000 (15:32 -0700)]
[subset] Add test cases for gsub closure in subsetting.

6 years ago[subset] Add fuzzing of gsub closure to hb-subset-fuzzer.
Garret Rieger [Thu, 7 Jun 2018 21:39:03 +0000 (14:39 -0700)]
[subset] Add fuzzing of gsub closure to hb-subset-fuzzer.

6 years ago[subset] Use gsub closure if ot layout is not being dropped.
Garret Rieger [Thu, 7 Jun 2018 21:32:34 +0000 (14:32 -0700)]
[subset] Use gsub closure if ot layout is not being dropped.

6 years ago[subset] Add drop_ot_layout setting to subset input.
Garret Rieger [Thu, 7 Jun 2018 21:23:03 +0000 (14:23 -0700)]
[subset] Add drop_ot_layout setting to subset input.

6 years ago[subset] add a new closure call to hb-ot-layout that can compute the closure over...
Garret Rieger [Wed, 6 Jun 2018 23:02:51 +0000 (16:02 -0700)]
[subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.

6 years ago[set] Add is_subset
Behdad Esfahbod [Wed, 6 Jun 2018 23:46:50 +0000 (16:46 -0700)]
[set] Add is_subset

New API:
+hb_set_is_subset()

6 years ago[subset] Add memoization of GSUB lookup closures.
Garret Rieger [Wed, 6 Jun 2018 00:14:42 +0000 (17:14 -0700)]
[subset] Add memoization of GSUB lookup closures.

6 years agoMinorish
Behdad Esfahbod [Wed, 6 Jun 2018 22:24:43 +0000 (15:24 -0700)]
Minorish

6 years agoCompiler gymnastics
Behdad Esfahbod [Wed, 6 Jun 2018 22:23:35 +0000 (15:23 -0700)]
Compiler gymnastics

Part of https://github.com/harfbuzz/harfbuzz/issues/630

6 years agoMove prime_for back into map
Behdad Esfahbod [Wed, 6 Jun 2018 21:55:30 +0000 (14:55 -0700)]
Move prime_for back into map

This was causing problem on systems without visibility when map was used
from both libharfbuzz and libharfbuzz-subset. Sigh.

https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3

6 years agoConvert Consonant_Initial_Postfixed to CONS_FINAL
David Corbett [Wed, 6 Jun 2018 16:57:28 +0000 (12:57 -0400)]
Convert Consonant_Initial_Postfixed to CONS_FINAL

Consonant_Initial_Postfixed was split off of Consonant_Succeeding_Repha,
so it should correspond to the same USE class, CONS_FINAL.

6 years ago1.8.0
Behdad Esfahbod [Wed, 6 Jun 2018 01:04:40 +0000 (18:04 -0700)]
1.8.0

6 years ago[ucdn] Update to Unicode 11
Behdad Esfahbod [Wed, 6 Jun 2018 00:59:31 +0000 (17:59 -0700)]
[ucdn] Update to Unicode 11

https://github.com/grigorig/ucdn/issues/19

6 years agoUpdate to Unicode 11.0.0
Behdad Esfahbod [Wed, 6 Jun 2018 00:31:46 +0000 (17:31 -0700)]
Update to Unicode 11.0.0

UCDN is not updated yet.

6 years agoMinor
Behdad Esfahbod [Tue, 5 Jun 2018 22:31:04 +0000 (15:31 -0700)]
Minor

6 years ago[RELEASING] Update
Behdad Esfahbod [Tue, 5 Jun 2018 22:20:23 +0000 (15:20 -0700)]
[RELEASING] Update

6 years ago1.7.7
Behdad Esfahbod [Tue, 5 Jun 2018 22:17:39 +0000 (15:17 -0700)]
1.7.7

6 years ago[khmer] Fix Coeng vs Halant confusion
Behdad Esfahbod [Mon, 4 Jun 2018 23:47:45 +0000 (16:47 -0700)]
[khmer] Fix Coeng vs Halant confusion

Test suite results are unchanged (34).

6 years agoFix hb_face_count build issue
Ebrahim Byagowi [Tue, 5 Jun 2018 18:20:53 +0000 (22:50 +0430)]
Fix hb_face_count build issue

I should've rebased #1002 before the merge, my bad

6 years agoAdd hb_face_count, a new API (#1002)
Ebrahim Byagowi [Tue, 5 Jun 2018 14:26:26 +0000 (18:56 +0430)]
Add hb_face_count, a new API (#1002)

Simply, it returns the number of faces on a font blob.

To be used on hb-sanitizer tool but other clients also
can benefit from it.

6 years ago[sinhala] Move reph to after post-consonants
Behdad Esfahbod [Mon, 4 Jun 2018 22:40:43 +0000 (15:40 -0700)]
[sinhala] Move reph to after post-consonants

Apparently this changed between Win 7 and Win 10.

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

To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044

6 years ago[test] Fix record-test to use gids not glyph-names
Behdad Esfahbod [Mon, 4 Jun 2018 22:38:05 +0000 (15:38 -0700)]
[test] Fix record-test to use gids not glyph-names

as those might not match what FontTools think of the glyphs if font
does NOT have glyph names.

6 years agoRemove DISALLOW_* from vector, set, and map
Behdad Esfahbod [Sun, 3 Jun 2018 03:30:09 +0000 (20:30 -0700)]
Remove DISALLOW_* from vector, set, and map

Some of the build bots, still fail on this.  I suppose mine pass because
I enable C++11...

Anyway, remove these again.

6 years agoFix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985
Behdad Esfahbod [Sat, 2 Jun 2018 22:30:59 +0000 (15:30 -0700)]
Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985

Ouch!

6 years ago[vector] Use Crap pool in push() as well
Behdad Esfahbod [Sat, 2 Jun 2018 00:48:37 +0000 (17:48 -0700)]
[vector] Use Crap pool in push() as well

6 years ago[vector] Keep success status
Behdad Esfahbod [Sat, 2 Jun 2018 00:37:13 +0000 (17:37 -0700)]
[vector] Keep success status

6 years ago[vector] Whitespace
Behdad Esfahbod [Sat, 2 Jun 2018 00:34:24 +0000 (17:34 -0700)]
[vector] Whitespace

6 years agoAnother attempt at making every compiler happy...
Behdad Esfahbod [Sat, 2 Jun 2018 00:32:07 +0000 (17:32 -0700)]
Another attempt at making every compiler happy...

Sigh.

6 years ago[map] Move prime_for to hb-static
Behdad Esfahbod [Sat, 2 Jun 2018 00:28:47 +0000 (17:28 -0700)]
[map] Move prime_for to hb-static

6 years ago[set] Shrink page-map size again
Behdad Esfahbod [Sat, 2 Jun 2018 00:25:35 +0000 (17:25 -0700)]
[set] Shrink page-map size again

6 years agoFix hb_vector_size_t
Behdad Esfahbod [Sat, 2 Jun 2018 00:18:57 +0000 (17:18 -0700)]
Fix hb_vector_size_t

6 years ago[subset] Have the subset fuzzer pull the text string to subset to from the end of...
Garret Rieger [Thu, 31 May 2018 23:47:39 +0000 (16:47 -0700)]
[subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data.

6 years agoAdd Codacy badge
Behdad Esfahbod [Fri, 1 Jun 2018 23:30:38 +0000 (16:30 -0700)]
Add Codacy badge

6 years agoRevert "Remove HB_DISALLOW_COPY_AND_ASSIGN"
Behdad Esfahbod [Fri, 1 Jun 2018 23:07:55 +0000 (16:07 -0700)]
Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN"

This reverts commit ff92de766bf775bfdd3a01bda94de699180ff86a.

Revert that and remove ASSERT_POD. Let's see which bots are
unhappy with this configuration...

6 years agoUse NullPool for _hb_set_nil and _hb_map_nil
Behdad Esfahbod [Fri, 1 Jun 2018 03:20:17 +0000 (20:20 -0700)]
Use NullPool for _hb_set_nil and _hb_map_nil

6 years ago[set] Minor
Behdad Esfahbod [Fri, 1 Jun 2018 03:15:21 +0000 (20:15 -0700)]
[set] Minor

6 years agoRename in_error to !successful
Behdad Esfahbod [Fri, 1 Jun 2018 03:03:00 +0000 (20:03 -0700)]
Rename in_error to !successful

Towards possibly using Null pool for some nil objects.

6 years agoFix a whitespace inconsistency
Behdad Esfahbod [Fri, 1 Jun 2018 02:52:16 +0000 (19:52 -0700)]
Fix a whitespace inconsistency

Null() and Crap() are only places that there's no space before '('...

6 years agoRemove trivial HB_ATOMIC_INT_INIT()
Behdad Esfahbod [Fri, 1 Jun 2018 02:31:39 +0000 (19:31 -0700)]
Remove trivial HB_ATOMIC_INT_INIT()

6 years agoUse 0 as inert object reference value instead of -1
Behdad Esfahbod [Fri, 1 Jun 2018 02:28:04 +0000 (19:28 -0700)]
Use 0 as inert object reference value instead of -1

Towards using Null object for nil objects.

6 years agoAdd const OffsetTo<> dereference
Behdad Esfahbod [Fri, 1 Jun 2018 00:58:40 +0000 (17:58 -0700)]
Add const OffsetTo<> dereference

Unused, but now that we have CrapPool, implement it.

6 years agoFix symbol export issue of prime_mod on Alpine bot
Ebrahim Byagowi [Thu, 31 May 2018 07:57:31 +0000 (12:27 +0430)]
Fix symbol export issue of prime_mod on Alpine bot

Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like defining static const
inside a method, lets put that on outside the classes.

6 years ago[map] Mark prime_for HB_INTERNAL
Behdad Esfahbod [Wed, 30 May 2018 23:26:50 +0000 (16:26 -0700)]
[map] Mark prime_for HB_INTERNAL

Trying to see if it fixes gcc-4.2 bots.

6 years agoAdd CrapOrNull
Behdad Esfahbod [Wed, 30 May 2018 23:25:46 +0000 (16:25 -0700)]
Add CrapOrNull

6 years ago[subset] Switch to using hb_map_t inside of hb_subset_plan_t.
Garret Rieger [Wed, 30 May 2018 19:23:51 +0000 (12:23 -0700)]
[subset] Switch to using hb_map_t inside of hb_subset_plan_t.

6 years ago[map] Fix size calculation
Behdad Esfahbod [Wed, 30 May 2018 21:02:49 +0000 (14:02 -0700)]
[map] Fix size calculation

Don't know why I thought I should subtract one there...

6 years agoRemove HB_DISALLOW_COPY_AND_ASSIGN
Behdad Esfahbod [Wed, 30 May 2018 01:48:45 +0000 (18:48 -0700)]
Remove HB_DISALLOW_COPY_AND_ASSIGN

llvm-gcc-4.2 bot had this problem:
hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t<Type, StaticSize>::operator=(const hb_vector_t<Type, StaticSize>&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]'

Removing the delete didn't work with a constructor. So, remove constructor.
Just disallow assignment.  Still better than nothing.

6 years ago[map] Fix resize
Behdad Esfahbod [Wed, 30 May 2018 01:32:57 +0000 (18:32 -0700)]
[map] Fix resize

6 years agoDisable use of thread_local
Behdad Esfahbod [Wed, 30 May 2018 01:21:55 +0000 (18:21 -0700)]
Disable use of thread_local

Clang build was failing with:

/usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object

Instead of fighting it, just disable use of it.

6 years ago[map] Not going to implement is_equal which is complicated
Behdad Esfahbod [Wed, 30 May 2018 01:15:52 +0000 (18:15 -0700)]
[map] Not going to implement is_equal which is complicated

6 years ago[map] Move prime_mod to header to avoid linkage issues in subset.so
Behdad Esfahbod [Wed, 30 May 2018 01:13:13 +0000 (18:13 -0700)]
[map] Move prime_mod to header to avoid linkage issues in subset.so

6 years ago[map] Fix copyright year
Behdad Esfahbod [Wed, 30 May 2018 00:58:46 +0000 (17:58 -0700)]
[map] Fix copyright year

6 years ago[map] Minor
Behdad Esfahbod [Wed, 30 May 2018 00:52:37 +0000 (17:52 -0700)]
[map] Minor

6 years ago[map] Don't return INVALID from get() just because in_error
Behdad Esfahbod [Wed, 30 May 2018 00:52:07 +0000 (17:52 -0700)]
[map] Don't return INVALID from get() just because in_error

6 years ago[map] Fix bool use in C API
Behdad Esfahbod [Wed, 30 May 2018 00:34:35 +0000 (17:34 -0700)]
[map] Fix bool use in C API

6 years ago[map] More minor
Behdad Esfahbod [Wed, 30 May 2018 00:31:01 +0000 (17:31 -0700)]
[map] More minor

6 years ago[map] Make initial resize actually work
Behdad Esfahbod [Wed, 30 May 2018 00:27:25 +0000 (17:27 -0700)]
[map] Make initial resize actually work

6 years ago[map] Add clear(), is_empty(), and get_population()
Behdad Esfahbod [Wed, 30 May 2018 00:09:17 +0000 (17:09 -0700)]
[map] Add clear(), is_empty(), and get_population()

6 years ago[map] Minor
Behdad Esfahbod [Wed, 30 May 2018 00:02:22 +0000 (17:02 -0700)]
[map] Minor

6 years ago[map] Track population and occupancy separately
Behdad Esfahbod [Wed, 30 May 2018 00:00:02 +0000 (17:00 -0700)]
[map] Track population and occupancy separately

6 years ago[map] Minor
Behdad Esfahbod [Tue, 29 May 2018 23:45:20 +0000 (16:45 -0700)]
[map] Minor

6 years agoRevert "[map] Return bool from set()"
Behdad Esfahbod [Tue, 29 May 2018 23:45:06 +0000 (16:45 -0700)]
Revert "[map] Return bool from set()"

This reverts commit face7cf55d4895ffca314c8448c0a749a26cc182.

6 years agoRevert "[map] Make hb_map_set() return bool"
Behdad Esfahbod [Tue, 29 May 2018 23:44:55 +0000 (16:44 -0700)]
Revert "[map] Make hb_map_set() return bool"

This reverts commit 7bf1980146cfc081b06264ac367b23ae9397adf1.

6 years ago[map] Make hb_map_set() return bool
Behdad Esfahbod [Tue, 29 May 2018 23:42:44 +0000 (16:42 -0700)]
[map] Make hb_map_set() return bool

6 years ago[map] Return bool from set()
Behdad Esfahbod [Tue, 29 May 2018 23:39:03 +0000 (16:39 -0700)]
[map] Return bool from set()

6 years ago[map] Implement operator[] for get()ting
Behdad Esfahbod [Tue, 29 May 2018 23:37:44 +0000 (16:37 -0700)]
[map] Implement operator[] for get()ting

6 years ago[map] First try at implementing an integer-to-integer hashmap
Behdad Esfahbod [Tue, 29 May 2018 23:28:48 +0000 (16:28 -0700)]
[map] First try at implementing an integer-to-integer hashmap

Fully untested.

6 years ago[blob] Use MAP_NORESERVE if available (#1039)
Ebrahim Byagowi [Sat, 26 May 2018 19:20:10 +0000 (23:50 +0430)]
[blob] Use MAP_NORESERVE if available (#1039)

MAP_NORESERVE is not available on macOS for example so set the flag
to zero if not defined on the headers.

6 years ago[set] Remove stale comment
Behdad Esfahbod [Fri, 25 May 2018 23:34:08 +0000 (16:34 -0700)]
[set] Remove stale comment

6 years agoAdd HB_DISALLOW_COPY_AND_ASSIGN
Behdad Esfahbod [Fri, 25 May 2018 23:21:27 +0000 (16:21 -0700)]
Add HB_DISALLOW_COPY_AND_ASSIGN

6 years agoMove pool definitions to hb-static.cc
Behdad Esfahbod [Thu, 24 May 2018 22:58:26 +0000 (15:58 -0700)]
Move pool definitions to hb-static.cc

6 years agoFix Uniscribe build
Behdad Esfahbod [Thu, 24 May 2018 21:09:04 +0000 (14:09 -0700)]
Fix Uniscribe build

If a pointer type was passed to Null(), reinterpret_cast<> was
complaining about qualifiers being removed. Turns out I need the const on
the other side of "Type" to fix that.  Also remove unused const from
NullPool type.

6 years agoUnderflow protection in hb_vector_t
Behdad Esfahbod [Thu, 24 May 2018 20:38:46 +0000 (13:38 -0700)]
Underflow protection in hb_vector_t

6 years agoMark CrapPool thread_local
Behdad Esfahbod [Thu, 24 May 2018 18:46:57 +0000 (11:46 -0700)]
Mark CrapPool thread_local

Not sure if I like to keep it. For now, aim for correctness.

6 years agoAdd CrapPool
Behdad Esfahbod [Thu, 24 May 2018 18:33:15 +0000 (11:33 -0700)]
Add CrapPool

Common Regoin for Access Protection.  Like the NullPool, but writable.

6 years agoMove code around
Behdad Esfahbod [Thu, 24 May 2018 03:12:23 +0000 (20:12 -0700)]
Move code around

6 years agoAdd hb_vector_t::push(const Type &v)
Behdad Esfahbod [Wed, 23 May 2018 23:15:28 +0000 (16:15 -0700)]
Add hb_vector_t::push(const Type &v)

Makes for cleaner code.

6 years ago[ci] Revive the SunCC bot
Ebrahim Byagowi [Wed, 23 May 2018 09:07:57 +0000 (13:37 +0430)]
[ci] Revive the SunCC bot

* Adds libnsl to the bot as it is now needed apparently
* Disables hb-icu, apparently the newer ICU itself is not compatible with SunCC

6 years agoActually enable vectorized operations
Behdad Esfahbod [Wed, 23 May 2018 05:00:05 +0000 (22:00 -0700)]
Actually enable vectorized operations

Fixup for previous commit. Was accidentally turned off.

6 years agoAnother try at smart vectorization
Behdad Esfahbod [Wed, 23 May 2018 04:36:07 +0000 (21:36 -0700)]
Another try at smart vectorization

Make clang happy. Also, don't use anonymous union.

6 years agoTry enabling vectorization smartly
Behdad Esfahbod [Wed, 23 May 2018 04:06:22 +0000 (21:06 -0700)]
Try enabling vectorization smartly

We'll see if this sticks to the bots.

6 years ago[set] Always check population before checking for equality
Behdad Esfahbod [Wed, 23 May 2018 03:57:19 +0000 (20:57 -0700)]
[set] Always check population before checking for equality