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.
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.
Behdad Esfahbod [Tue, 12 Jun 2018 23:38:04 +0000 (19:38 -0400)]
1.8.1
Behdad Esfahbod [Tue, 12 Jun 2018 23:32:04 +0000 (19:32 -0400)]
[docs] Enlist misc new symbols
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.
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.
Behdad Esfahbod [Tue, 12 Jun 2018 03:24:41 +0000 (23:24 -0400)]
[substitute-closure] Rename function for clarity
Behdad Esfahbod [Tue, 12 Jun 2018 03:23:40 +0000 (23:23 -0400)]
Whitespace
Behdad Esfahbod [Tue, 12 Jun 2018 02:11:45 +0000 (22:11 -0400)]
[vector] Always 0-fill new items
Behdad Esfahbod [Tue, 12 Jun 2018 02:05:08 +0000 (22:05 -0400)]
Fix compiler warning re reordering of initializations
Behdad Esfahbod [Tue, 12 Jun 2018 02:02:38 +0000 (22:02 -0400)]
Style
Jonathan Kew [Tue, 12 Jun 2018 01:09:35 +0000 (18:09 -0700)]
[hb-set] Additional testcase for hb-set-intersect.
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.
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
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
prrace [Sat, 9 Jun 2018 23:04:28 +0000 (16:04 -0700)]
Fix SunStudio 12.6 build (#1053)
Garret Rieger [Thu, 7 Jun 2018 22:55:45 +0000 (15:55 -0700)]
[subset] Use REPLACEME instead of version.
Garret Rieger [Thu, 7 Jun 2018 22:54:19 +0000 (15:54 -0700)]
[subset] Move variable declaration out of loop.
Garret Rieger [Thu, 7 Jun 2018 22:32:52 +0000 (15:32 -0700)]
[subset] Add test cases for gsub closure in subsetting.
Garret Rieger [Thu, 7 Jun 2018 21:39:03 +0000 (14:39 -0700)]
[subset] Add fuzzing of gsub closure to hb-subset-fuzzer.
Garret Rieger [Thu, 7 Jun 2018 21:32:34 +0000 (14:32 -0700)]
[subset] Use gsub closure if ot layout is not being dropped.
Garret Rieger [Thu, 7 Jun 2018 21:23:03 +0000 (14:23 -0700)]
[subset] Add drop_ot_layout setting to subset input.
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.
Behdad Esfahbod [Wed, 6 Jun 2018 23:46:50 +0000 (16:46 -0700)]
[set] Add is_subset
New API:
+hb_set_is_subset()
Garret Rieger [Wed, 6 Jun 2018 00:14:42 +0000 (17:14 -0700)]
[subset] Add memoization of GSUB lookup closures.
Behdad Esfahbod [Wed, 6 Jun 2018 22:24:43 +0000 (15:24 -0700)]
Minorish
Behdad Esfahbod [Wed, 6 Jun 2018 22:23:35 +0000 (15:23 -0700)]
Compiler gymnastics
Part of https://github.com/harfbuzz/harfbuzz/issues/630
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
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.
Behdad Esfahbod [Wed, 6 Jun 2018 01:04:40 +0000 (18:04 -0700)]
1.8.0
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
Behdad Esfahbod [Wed, 6 Jun 2018 00:31:46 +0000 (17:31 -0700)]
Update to Unicode 11.0.0
UCDN is not updated yet.
Behdad Esfahbod [Tue, 5 Jun 2018 22:31:04 +0000 (15:31 -0700)]
Minor
Behdad Esfahbod [Tue, 5 Jun 2018 22:20:23 +0000 (15:20 -0700)]
[RELEASING] Update
Behdad Esfahbod [Tue, 5 Jun 2018 22:17:39 +0000 (15:17 -0700)]
1.7.7
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).
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
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.
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
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.
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.
Behdad Esfahbod [Sat, 2 Jun 2018 22:30:59 +0000 (15:30 -0700)]
Behdad Esfahbod [Sat, 2 Jun 2018 00:48:37 +0000 (17:48 -0700)]
[vector] Use Crap pool in push() as well
Behdad Esfahbod [Sat, 2 Jun 2018 00:37:13 +0000 (17:37 -0700)]
[vector] Keep success status
Behdad Esfahbod [Sat, 2 Jun 2018 00:34:24 +0000 (17:34 -0700)]
[vector] Whitespace
Behdad Esfahbod [Sat, 2 Jun 2018 00:32:07 +0000 (17:32 -0700)]
Another attempt at making every compiler happy...
Sigh.
Behdad Esfahbod [Sat, 2 Jun 2018 00:28:47 +0000 (17:28 -0700)]
[map] Move prime_for to hb-static
Behdad Esfahbod [Sat, 2 Jun 2018 00:25:35 +0000 (17:25 -0700)]
[set] Shrink page-map size again
Behdad Esfahbod [Sat, 2 Jun 2018 00:18:57 +0000 (17:18 -0700)]
Fix hb_vector_size_t
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.
Behdad Esfahbod [Fri, 1 Jun 2018 23:30:38 +0000 (16:30 -0700)]
Add Codacy badge
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...
Behdad Esfahbod [Fri, 1 Jun 2018 03:20:17 +0000 (20:20 -0700)]
Use NullPool for _hb_set_nil and _hb_map_nil
Behdad Esfahbod [Fri, 1 Jun 2018 03:15:21 +0000 (20:15 -0700)]
[set] Minor
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.
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 '('...
Behdad Esfahbod [Fri, 1 Jun 2018 02:31:39 +0000 (19:31 -0700)]
Remove trivial HB_ATOMIC_INT_INIT()
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.
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.
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.
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.
Behdad Esfahbod [Wed, 30 May 2018 23:25:46 +0000 (16:25 -0700)]
Add CrapOrNull
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.
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...
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.
Behdad Esfahbod [Wed, 30 May 2018 01:32:57 +0000 (18:32 -0700)]
[map] Fix resize
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.
Behdad Esfahbod [Wed, 30 May 2018 01:15:52 +0000 (18:15 -0700)]
[map] Not going to implement is_equal which is complicated
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
Behdad Esfahbod [Wed, 30 May 2018 00:58:46 +0000 (17:58 -0700)]
[map] Fix copyright year
Behdad Esfahbod [Wed, 30 May 2018 00:52:37 +0000 (17:52 -0700)]
[map] Minor
Behdad Esfahbod [Wed, 30 May 2018 00:52:07 +0000 (17:52 -0700)]
[map] Don't return INVALID from get() just because in_error
Behdad Esfahbod [Wed, 30 May 2018 00:34:35 +0000 (17:34 -0700)]
[map] Fix bool use in C API
Behdad Esfahbod [Wed, 30 May 2018 00:31:01 +0000 (17:31 -0700)]
[map] More minor
Behdad Esfahbod [Wed, 30 May 2018 00:27:25 +0000 (17:27 -0700)]
[map] Make initial resize actually work
Behdad Esfahbod [Wed, 30 May 2018 00:09:17 +0000 (17:09 -0700)]
[map] Add clear(), is_empty(), and get_population()
Behdad Esfahbod [Wed, 30 May 2018 00:02:22 +0000 (17:02 -0700)]
[map] Minor
Behdad Esfahbod [Wed, 30 May 2018 00:00:02 +0000 (17:00 -0700)]
[map] Track population and occupancy separately
Behdad Esfahbod [Tue, 29 May 2018 23:45:20 +0000 (16:45 -0700)]
[map] Minor
Behdad Esfahbod [Tue, 29 May 2018 23:45:06 +0000 (16:45 -0700)]
Revert "[map] Return bool from set()"
This reverts commit
face7cf55d4895ffca314c8448c0a749a26cc182.
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.
Behdad Esfahbod [Tue, 29 May 2018 23:42:44 +0000 (16:42 -0700)]
[map] Make hb_map_set() return bool
Behdad Esfahbod [Tue, 29 May 2018 23:39:03 +0000 (16:39 -0700)]
[map] Return bool from set()
Behdad Esfahbod [Tue, 29 May 2018 23:37:44 +0000 (16:37 -0700)]
[map] Implement operator[] for get()ting
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.
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.
Behdad Esfahbod [Fri, 25 May 2018 23:34:08 +0000 (16:34 -0700)]
[set] Remove stale comment
Behdad Esfahbod [Fri, 25 May 2018 23:21:27 +0000 (16:21 -0700)]
Add HB_DISALLOW_COPY_AND_ASSIGN
Behdad Esfahbod [Thu, 24 May 2018 22:58:26 +0000 (15:58 -0700)]
Move pool definitions to hb-static.cc
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.
Behdad Esfahbod [Thu, 24 May 2018 20:38:46 +0000 (13:38 -0700)]
Underflow protection in hb_vector_t
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.
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.
Behdad Esfahbod [Thu, 24 May 2018 03:12:23 +0000 (20:12 -0700)]
Move code around
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.
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
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.
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.
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.
Behdad Esfahbod [Wed, 23 May 2018 03:57:19 +0000 (20:57 -0700)]
[set] Always check population before checking for equality