Michiharu Ariza
161ece4c30
Merge branch 'master' into cff-subset
2018-08-06 11:23:50 -07:00
Michiharu Ariza
9fae33b9f3
Silence Codacy
2018-08-06 10:44:12 -07:00
Michiharu Ariza
5561b81849
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.
2018-08-06 10:04:53 -07:00
Behdad Esfahbod
79e21984b1
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
2018-08-06 09:45:17 -07:00
Koji Ishii
9533364cc3
batchwidth
2018-08-06 09:44:46 -07:00
Behdad Esfahbod
b912fbea17
Remove most uses of direct comparison to Null objects
2018-08-06 06:38:59 -07:00
Behdad Esfahbod
3506672ce9
Port _nil objects to Null() machinery
...
Finally, unified!
2018-08-06 06:17:48 -07:00
Behdad Esfahbod
1abd427acf
[BASE] Rename horzi/vert to h/v
2018-08-06 05:53:35 -07:00
Behdad Esfahbod
da48aca1be
[BASE] Misc fixes
...
The code was badly broken. In better shape now, but still, needs
a full review before ever working.
2018-08-06 05:52:12 -07:00
Behdad Esfahbod
f9cfa5cb0e
Change null-pool specialization to min_size again
2018-08-06 05:29:15 -07:00
Behdad Esfahbod
25147ff808
Move Null system to hb-null.hh
2018-08-06 05:01:52 -07:00
Behdad Esfahbod
f800368df3
Remove unused macros
2018-08-06 04:58:34 -07:00
Behdad Esfahbod
19e0091299
Minor
2018-08-06 04:54:31 -07:00
Behdad Esfahbod
37be774af9
Minor
2018-08-06 04:52:12 -07:00
Behdad Esfahbod
e1acff806b
Move hb_vector_t to hb-vector-private.hh
2018-08-06 04:42:46 -07:00
Behdad Esfahbod
be336dadc0
Move some more code around
2018-08-06 04:32:51 -07:00
Behdad Esfahbod
92806ee055
Move null data definitions to hb-static.cc
...
Also remove " " null data for Tag. Just use zeroes.
2018-08-05 21:41:52 -07:00
Behdad Esfahbod
1b4d5a2402
Minor
2018-08-03 19:55:09 -07:00
Behdad Esfahbod
7df7963b46
Make lazy loader deal with OOM
2018-08-03 19:54:33 -07:00
Behdad Esfahbod
30ff8ac865
Rename
2018-08-03 17:33:13 -07:00
Behdad Esfahbod
85ba4a190f
[ot] Comment
2018-08-03 17:06:42 -07:00
Behdad Esfahbod
07afc1a213
[ot] Add misc tables to tables_t
...
Most unused.
2018-08-03 17:03:32 -07:00
Behdad Esfahbod
74b4df2cde
[ot] Move GDEF into tables_t
2018-08-03 16:58:05 -07:00
Behdad Esfahbod
0271c7ab3b
[ot] Move GSUB/GPOS into tables_t
2018-08-03 16:45:57 -07:00
Behdad Esfahbod
f73d2775cf
[ot] More shuffling
...
Misc. table loading now properly automated.
2018-08-03 16:34:25 -07:00
Behdad Esfahbod
52fbd23d86
[ot] Minor
2018-08-03 16:22:16 -07:00
Michiharu Ariza
cc3f4e00aa
silence gcc
2018-08-03 15:00:37 -07:00
Michiharu Ariza
00970dd242
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
2018-08-03 14:35:09 -07:00
Behdad Esfahbod
6a0a298aab
[ot] Move code around
2018-08-02 23:13:19 -07:00
Behdad Esfahbod
5e718a751e
[ot] Use switch for checking for blacklisted GDEF tables
...
Faster / more compact code.
2018-08-02 23:04:42 -07:00
Behdad Esfahbod
b5cdf5280d
[ot] In GDEF blacklisting logic, remove the glyph index check for Times
...
Just blacklist based on table sizes like we do for other fonts.
2018-08-02 22:56:42 -07:00
Behdad Esfahbod
c988b11999
Move code around
2018-08-02 22:55:52 -07:00
Michiharu Ariza
76f7397c10
templatized CFF2 accelerator for lean Private dict interpretting for subset
...
also fixed local subrs serialization
2018-08-02 16:28:10 -07:00
Michiharu Ariza
43040564e6
removed TRACE_SERIALIZE from non-member function _write_cff2
2018-08-02 12:23:10 -07:00
Michiharu Ariza
e2fd49e477
Merge branch 'master' into cff-subset
2018-08-02 11:39:22 -07:00
Michiharu Ariza
693ae80474
more silencing fixes
2018-08-02 11:22:42 -07:00
Michiharu Ariza
f6da449831
silence archlinux
2018-08-02 10:52:08 -07:00
Michiharu Ariza
58279c3db4
silence Codacy
2018-08-02 10:18:01 -07:00
Behdad Esfahbod
574b37e933
Minor
2018-08-02 02:22:38 -07:00
Behdad Esfahbod
d4d1bf8177
Fix for recent rename
2018-08-02 02:04:02 -07:00
Behdad Esfahbod
91126aa11a
[uniscribe] Update for recent changes
2018-08-02 02:03:13 -07:00
Behdad Esfahbod
66952ec47b
Remove unused table reference
2018-08-02 01:45:12 -07:00
Behdad Esfahbod
443de26fa5
Minor
2018-08-02 01:43:02 -07:00
Behdad Esfahbod
ee35af738b
Make lazy-loader safe for nil objectification
2018-08-02 01:37:57 -07:00
Behdad Esfahbod
6404c49d07
Minor
2018-08-02 01:36:08 -07:00
Behdad Esfahbod
ff7826e90b
Reduce storage by sharing face amongst lazy_loaders
2018-08-02 01:29:05 -07:00
Behdad Esfahbod
bdd3c11a19
Internal templatization of lazy-loaders
2018-08-02 01:09:14 -07:00
Behdad Esfahbod
ed7b2e58fc
Remove OT namespace from hb-machinery-private.hh
2018-08-02 00:08:08 -07:00
Behdad Esfahbod
cb1491f92e
Minor
2018-08-01 22:50:45 -07:00
Behdad Esfahbod
16ccfafbbd
[face] Sprinkle const in the API
2018-08-01 22:50:06 -07:00
Behdad Esfahbod
3d22aefede
Rename
2018-08-01 18:03:32 -07:00
Behdad Esfahbod
1a624c6e06
Add comment re (our only) race condition
2018-08-01 17:53:30 -07:00
Michiharu Ariza
19ce0b24c0
removed unused field OpStr::update
2018-08-01 17:34:59 -07:00
Michiharu Ariza
3bda54c43b
fixed Index::serialize
...
The bug was causing CharString of the last glyph corrupt
2018-08-01 16:32:27 -07:00
Michiharu Ariza
16f4dc9b73
fixed CFF2VariationStore::serialize
...
also get_size
2018-08-01 16:06:52 -07:00
Behdad Esfahbod
44d1fb37ef
1.8.5
2018-08-01 14:51:51 -07:00
Behdad Esfahbod
13f4c137c6
[atomic] Fix Solaris ones to add proper barriers
2018-08-01 14:15:00 -07:00
Behdad Esfahbod
19dfaa3515
[atomic] Remove volatile from IBM impl signature
2018-08-01 14:15:00 -07:00
Behdad Esfahbod
2093a3e0cb
[atomic] Oops
2018-08-01 14:15:00 -07:00
Behdad Esfahbod
19b98348ff
[atomic] Use read-barrier for get()
2018-08-01 14:15:00 -07:00
Behdad Esfahbod
006d4f031a
[atomic] Some more minor tweaks
2018-08-01 14:15:00 -07:00
Michiharu Ariza
b2ff582c8c
Implemented hb_subset_cff2
...
Added serialize functions to CFF2 structs
Fixed issues & bugs & code cleanup
Now subsetting CFF2 table outputs something
2018-08-01 11:30:38 -07:00
Ebrahim Byagowi
1a7fed6318
Revert "Add a new API, hb_ot_layout_get_feature_name_ids ( #976 )" ( #1121 )
...
This reverts commit 0c1b287b72
.
2018-08-01 12:15:44 +04:30
Behdad Esfahbod
dfc86e4b35
[atomic] Fix cast to fallback ptr_get()
2018-08-01 00:22:18 -07:00
Behdad Esfahbod
7a4d576e81
[gobject] Fix copy/paste error
2018-08-01 00:19:25 -07:00
Behdad Esfahbod
ad27562742
[atomic] On IBM, use light-weight sync for everything
...
lwsync() is a full read/write-barrier. That's all we need, never
need sync(). I'm not sure why an isync() was used in fetch_and_add,
but since that's a read-modify-write, I just changed it to have
lwsync() on both sides.
2018-07-31 23:01:05 -07:00
Behdad Esfahbod
fd638d215f
[atomic] Add XXX items around Solaris ops
...
Since add_int and cas are both read-modify-write, I wonder if we
also need a barrier after them.
2018-07-31 23:00:15 -07:00
Behdad Esfahbod
896ff15ae6
[atomic] Fix get() impl
...
Originally, glib's atomic_get was implemented as "memory_barrier; load".
I copied this into cairo, fontconfig, and harfbuzz. However, that's
wrong. Correct way is "load; memory_barrier". The details are long
and hard to fully grasp. Best to read:
https://www.kernel.org/doc/Documentation/memory-barriers.txt
Also see my report against GNOME:
https://gitlab.gnome.org/GNOME/glib/issues/1449
Note that this is irrelevant if C++11-like atomic ops are available.
2018-07-31 22:51:38 -07:00
Behdad Esfahbod
d7a15799d4
[gobject] Hook up hb_map_t
2018-07-31 22:28:28 -07:00
Behdad Esfahbod
63c74e8d1d
[atomic] Fix fallback impl
2018-07-31 22:21:21 -07:00
Behdad Esfahbod
4bc16aca47
[atomic] Add get_relaxed / set_relaxed
...
To help TSan and be more "correct".
2018-07-31 21:29:18 -07:00
Behdad Esfahbod
3dd1b88765
[atomic] Use CONSUME, not ACQUIRE, memory-order for get()
...
Although, all implementations just elevate that to ACQUIRE.
But requirement for us is just CONSUME.
2018-07-31 20:28:36 -07:00
Behdad Esfahbod
06b91d935d
Revert "[atomic] Make pointer get op relaxed instead of acquire"
...
This reverts commit b1e5650c67
.
After lots of head-scratching and finally finding the only truly
readable source to be the good old:
https://www.kernel.org/doc/Documentation/memory-barriers.txt
I've convinced myself that we need consume memory-ordering on get().
The location of memory-barrier in a load should be after, not before
the load. That needs fixing. I'll do that separately.
2018-07-31 20:28:36 -07:00
Garret Rieger
2bdd903c69
[subset] limit the max codepoint value to the unicode limit.
...
When collecting all codepoints in the cmap avoid using large amount of memory for fonts that declare coverage over all 32 bit integers.
2018-07-31 18:40:38 -07:00
Garret Rieger
89733755a4
[subset] use add_array to populate feature_indexes.
...
This is much faster then calling a bunch of individual add()'s.
2018-07-31 18:26:09 -07:00
Garret Rieger
7d92bef9c5
[subset] collect features first, then use those to collect lookups.
2018-07-31 18:26:09 -07:00
Behdad Esfahbod
af876cce30
[indic] Flip default logic for double-halants in old-school
...
Oriya went down from 9 to 2.
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707311 out of 707394 tests passed. 83 failed (0.0117332%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
MYANMAR: 1115830 out of 1123883 tests passed. 8053 failed (0.716534%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
2018-07-31 15:29:48 -07:00
Behdad Esfahbod
92ba9905ca
[indic] Allow double-halant in old-spec Devanagari
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1071
2018-07-31 15:19:32 -07:00
Behdad Esfahbod
5772edc0ea
[khmer] Typo
2018-07-31 14:10:31 -07:00
Behdad Esfahbod
6ddd669e20
[khmer] Clear syllables before presentation features
...
Probably not what Uniscribe does, but good idea?
2018-07-31 13:40:22 -07:00
Behdad Esfahbod
8eef1964a7
[khmer] Revert previous change, and remove pauses
...
This makes test suite happy again (at 44) while fixing the sequences
we were fixing, which were the following with KhmerUI.ttf:
U+1789,U+17BC
U+1789,U+17D2,U+1789
U+1789,U+17D2,U+1789,U+17BC
Fixes rest of https://github.com/harfbuzz/harfbuzz/issues/974
2018-07-31 13:40:17 -07:00
Behdad Esfahbod
7c658ea2f2
[khmer] Apply ccmp after basic features
...
Part of https://github.com/harfbuzz/harfbuzz/issues/974
2018-07-31 12:49:02 -07:00
Behdad Esfahbod
1a96cc825d
[khmer] Rewrite most of shaper to better follow spec
...
Khmer spec has only one reordering phase, and only simple prebase
matra and Coeng-Ro reordering. Implement that. Specifically,
this was done to address recognizing different orders of the matra
and Coeng-Ro sequence. That said, some combinations are now
reordered differently from Uniscribe. Not clear if that's intended
or a bug in Uniscribe. The following two sequences render the same
in Uniscribe whereas we reorder them differently:
U+17A0,U+17D2,U+179A,U+17C2
U+17A0,U+17C2,U+17D2,U+179A
For that reason, our test suite numbers regressed slightly. Used
to be at 34 for fails, now at:
KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%)
But generally a good change, and removed lots of code.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1026
2018-07-31 11:45:32 -07:00
Behdad Esfahbod
f5152cea42
[shaper] Move code around
2018-07-31 01:27:04 -07:00
Behdad Esfahbod
36d0fbbc52
[shaper] Remove a macro
2018-07-31 01:15:04 -07:00
Behdad Esfahbod
b1e5650c67
[atomic] Make pointer get op relaxed instead of acquire
...
We only use it before cmpexch, so relaxed is fine and faster for
common case.
2018-07-31 01:02:31 -07:00
Behdad Esfahbod
66ccd8ac40
[serialize] Increase stage count from 8 to 32
...
Indic shaper uses many stages. Now we are provably not limiting
functionality whereas the previous limit of 8 was assuming real-world
practices.
2018-07-30 17:03:06 -07:00
Behdad Esfahbod
ee8cf91965
[serialize] Remove unused truncate() method
2018-07-30 16:59:41 -07:00
Michiharu Ariza
8782f80cce
fixed FDSelect0::sanitize
2018-07-30 15:27:20 -07:00
Michiharu Ariza
9c4cadaef0
Added sanitize functions & calls
...
Added sanitize functions to FDSelect
Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict
2018-07-30 14:28:40 -07:00
Michiharu Ariza
161b642ec5
Merge branch 'master' into cff-subset
2018-07-30 12:22:09 -07:00
Garret Rieger
5edf454aa6
[subset] During lookup collection remember the features we've already processed.
2018-07-27 17:29:00 -07:00
Behdad Esfahbod
42c183f803
Minor
2018-07-27 14:55:29 -07:00
Behdad Esfahbod
ecab6604e5
[serialize] Allocate for markFilteringSet
2018-07-27 14:54:15 -07:00
Behdad Esfahbod
7f08818c44
Minor
2018-07-27 14:54:15 -07:00
prrace
2e25d8f491
Fix unlikely leaks
2018-07-27 14:54:08 -07:00
Behdad Esfahbod
3c2842cbcf
Add hb-iter-private.hh
...
Unused so far.
2018-07-25 17:07:17 -07:00
Behdad Esfahbod
92b1e025c6
Move some code from hb-open-type-private.hh to hb-machinery-private.hh
2018-07-25 16:58:47 -07:00
Behdad Esfahbod
6b11fea997
[closure] Allocate out set on the stack
2018-07-25 16:01:37 -07:00
Behdad Esfahbod
74467b7901
Fix compile
2018-07-25 14:30:07 -07:00
Behdad Esfahbod
bf90f35302
[coretext] Add note
2018-07-25 13:57:24 -07:00
Garret Rieger
fb58cb4b5c
[subset] Only used reachable lookups for gsub closure.
2018-07-25 13:56:58 -07:00
Behdad Esfahbod
c38bd4025f
[closure] Separate in and out glyphs
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1107
2018-07-24 13:47:32 -07:00
Garret Rieger
85646fdadb
[subset] Limit the iterations of the closure algorithm.
...
Prevents O(n^2) run times.
2018-07-23 16:01:57 -07:00
Behdad Esfahbod
94759d4cf8
Fix visibility on mingw32
...
Should fix bots again.
2018-07-23 15:08:32 -07:00
Behdad Esfahbod
61eddbd8ef
Fix infinite loop in loading num_glyphs within sanitizer
2018-07-23 14:44:10 -07:00
Behdad Esfahbod
e22a48ac95
One more visibility trick
...
Should fix Windows build again.
2018-07-23 13:24:26 -07:00
Behdad Esfahbod
e57a638bde
One more
2018-07-23 12:00:02 -07:00
Behdad Esfahbod
36ed163fdd
Remove unnecessary OT:: namespace specifiers
2018-07-23 11:57:45 -07:00
Behdad Esfahbod
c6bc7c3831
Set num glyphs on sanitizer reference_table()
...
Move out-of-class definitions of two methods to hb-static so they
are accessible in libharfbuzz-subset.
2018-07-23 11:46:46 -07:00
Behdad Esfahbod
9401829d4e
Remove Sanitizer<>
2018-07-22 22:50:58 -07:00
Behdad Esfahbod
8e3e41272b
Port rest of code away from Sanitizer<>
2018-07-22 22:49:26 -07:00
Behdad Esfahbod
d6a8f64045
Port dump-emoji away from Sanitizer<>
2018-07-22 22:47:19 -07:00
Behdad Esfahbod
14f78d2b3b
.
2018-07-22 22:45:26 -07:00
Behdad Esfahbod
4547051f48
Minor
2018-07-22 22:44:22 -07:00
Behdad Esfahbod
740ae27d5c
Port sbix off of Sanitizer<>
2018-07-22 22:43:25 -07:00
Behdad Esfahbod
9583e0077d
Port more off of Sanitizer<>
2018-07-22 22:43:25 -07:00
Behdad Esfahbod
e7737b41d7
Add sanitizer reference_table, also fix clang build
...
Clang is being really peculiar. Fix with:
- inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); }
+ inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }
2018-07-22 22:24:31 -07:00
David Corbett
62fa7cd1cc
Order Chakma split vowels in accordance with NFC
...
Fixes #1105 .
2018-07-22 19:47:21 -07:00
Ebrahim Byagowi
0c1b287b72
Add a new API, hb_ot_layout_get_feature_name_ids ( #976 )
...
This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.
However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-07-21 21:14:48 +04:30
Michiharu Ariza
3a61c3e935
first push of CFF/CFF2 work
...
Index, Dict structs
hooked up to hb-subset (takes CFF2, outputs empty CFF2)
2018-07-18 14:17:52 -07:00
Ebrahim Byagowi
93b65d9fe3
Remove dump-fon ( #1100 )
...
It had interesting stuffs like EXE parsing and
big-endian parsers but added in an attempt to find
a solution for #681 which later found not related.
2018-07-17 23:29:16 +04:30
Ebrahim Byagowi
d5cd47a69c
Remove AAT's gcid/fmtx ( #1099 )
...
We are not going to use them, at least in the foreseeable future
2018-07-17 22:32:37 +04:30
Behdad Esfahbod
1e9e344b2b
Fix hb_face_count() sanitize referencing
2018-07-17 19:17:59 +02:00
Behdad Esfahbod
a8cc0b5907
Remove TODO that is not gonna be done
...
Previously the idea was to cache sanitize results externally (think,
in Fontconfig) and avoid resanitizing every time. That's, not a good
idea.
2018-07-17 19:09:03 +02:00
Behdad Esfahbod
be70738400
Move sanitizer code around a bit
2018-07-17 18:51:59 +02:00
Behdad Esfahbod
db5d430eff
[aat] Update for blob changes
...
Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
2018-07-17 18:14:45 +02:00
Behdad Esfahbod
68310a65cb
1.8.4
2018-07-17 13:20:40 +02:00
Behdad Esfahbod
04b7b81bcb
Reland "Implement C++11-style GCC builtin atomic ops"
...
Fixed the crasher in it.
2018-07-17 11:02:38 +02:00
Behdad Esfahbod
019d18e9ae
Minor
2018-07-17 11:00:24 +02:00
Behdad Esfahbod
3edef5a19b
Revert "Implement C++11-style GCC builtin atomic ops"
...
This reverts commit 21fa170f0b
.
Is crashing. Oops.
2018-07-17 10:50:01 +02:00
Behdad Esfahbod
21fa170f0b
Implement C++11-style GCC builtin atomic ops
...
Hopefully fixes bots.
2018-07-16 17:58:02 +02:00
Behdad Esfahbod
804b59cf49
Relax C++11 atomic ops memory order to acquire-release
2018-07-16 15:45:22 +02:00
Behdad Esfahbod
bda242409f
Implement C++11 <atomic> operations
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/345
2018-07-16 15:45:22 +02:00
Behdad Esfahbod
2aae617a84
Move _hb_alignof later again
...
It uses constexpr...
2018-07-11 17:27:23 +02:00
Behdad Esfahbod
f3a74c16ec
Make hb_vector_t 8 bytes smaller
2018-07-11 17:23:53 +02:00
Behdad Esfahbod
44999f8b75
Align NullPool and CrapPool to HB_VECTOR_SIZE
2018-07-11 17:21:32 +02:00
Behdad Esfahbod
20a318d06a
Fix return type of alignof() fallback
2018-07-11 17:00:13 +02:00
Behdad Esfahbod
2b76767bf5
1.8.3
2018-07-11 15:27:13 +02:00
Behdad Esfahbod
718dfd4189
Fix shift
2018-07-10 16:34:31 +02:00
Behdad Esfahbod
25aa411ac5
Put back include dependencies
2018-07-10 16:05:03 +02:00
Behdad Esfahbod
491d93bf74
Move more stuff from hb-private.hh to hb-dsalgs.hh
2018-07-10 16:03:31 +02:00
Behdad Esfahbod
f477765661
Move more stuff to hb-dsalgs.hh
2018-07-10 15:49:05 +02:00
Behdad Esfahbod
be7f664f72
Move hb_bytes_t to hb-dsalgs.hh
2018-07-10 15:23:08 +02:00
Behdad Esfahbod
7a00f7eb2e
Remove hb_auto_array_t
2018-07-10 14:42:10 +02:00
Behdad Esfahbod
be458eb059
Include more basic internal headers from hb-private.hh
2018-07-10 14:41:04 +02:00
Behdad Esfahbod
bddeb2b10c
Minor renamings of internal inline functions
2018-07-10 14:13:21 +02:00
Behdad Esfahbod
d652ef299d
Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh
2018-07-10 14:05:00 +02:00
Behdad Esfahbod
9e53b08329
Move hb_stable_sort to hb-dsalgs.hh
...
Also, include hb-dsalgs.hh from end of hb-pricate.hh
2018-07-10 14:03:58 +02:00
Behdad Esfahbod
39f11d8e72
Minor
2018-07-10 14:01:39 +02:00
Behdad Esfahbod
763f878cc0
Fix syntax
...
Oops.
2018-07-10 13:47:41 +02:00
Behdad Esfahbod
83ea277178
Add posix_memalign() fallback
2018-07-10 13:17:27 +02:00
Behdad Esfahbod
292c100d61
Always compile (but not use) alignof() and round() fallback codes
...
Catches compile-errors in them better.
2018-07-10 13:16:52 +02:00
Behdad Esfahbod
27c5317d91
Fix alignof impl
2018-07-10 13:03:42 +02:00
Behdad Esfahbod
bca83618cd
Add fallback implementation for constexpr and alignof
2018-07-10 12:59:13 +02:00
Behdad Esfahbod
7cb47d0f3f
Minor
2018-07-10 12:59:13 +02:00
Cosimo Lupo
ccdd156554
src/Makefile.am: pass headers to gen-def.py as arguments, not env vars
2018-07-09 18:26:44 +01:00
Cosimo Lupo
e3a931ef0b
gen-def.py: pass headers as arguments so that msys2 can convert posix paths
...
When one is not using the msys2 python, the header files that are passed in as environment
variable cannot be found.
https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803
This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).
Msys2 will automatically convert command line arguments (but not environment variables) from
POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
as arguments instead of environment variables.
This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
native win32 python.
2018-07-09 18:11:33 +01:00
David Corbett
46d8f0d552
Do not enforce a native direction of LTR for Runic
...
Fixes #481
2018-07-08 17:18:25 +04:30
David Corbett
936dadc661
Regenerate the USE table for Grantha and Bhaiksuki ( #1090 )
...
Completes #1037 and fixes #1035 .
2018-07-07 19:38:17 +04:30
Behdad Esfahbod
1ebaa090d8
Disable vectorization
...
Disable vectorization for now. To correctly use them, we should
use posix_memalign() to allocate them. Otherwise, can cause
misaligned access.
https://bugs.chromium.org/p/chromium/issues/detail?id=860184
2018-07-05 14:04:13 +04:30
Behdad Esfahbod
18a06f8a66
Fix warning
...
../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]
2018-07-05 14:03:48 +04:30
Behdad Esfahbod
058708a665
Allow disabling vector_size use
2018-07-05 13:16:00 +04:30
Ebrahim Byagowi
d8a7dedc83
Use CreateFileW explicitly and pass wchar_t to it ( #1087 )
2018-07-04 15:33:39 +04:30
Behdad Esfahbod
9940504e93
[indic] Adjust left-matra repositioning and Halant,ZWJ sequence
...
From the new code (first paragraph is from the OT Devanagari spec.):
/* o Reorder matras:
*
* If a pre-base matra character had been reordered before applying basic
* features, the glyph can be moved closer to the main consonant based on
* whether half-forms had been formed. Actual position for the matra is
* defined as “after last standalone halant glyph, after initial matra
* position and before the main consonant”. If ZWJ or ZWNJ follow this
* halant, position is moved after it.
*
* IMPLEMENTATION NOTES:
*
* It looks like the last sentence is wrong. Testing, with Windows 7 Uniscribe
* and Devanagari shows that the behavior is best described as:
*
* "If ZWJ follows this halant, matra is NOT repositioned after this halant.
* If ZWNJ follows this halant, position is moved after it."
*
* Test case, with Adobe Devanagari or Nirmala UI:
*
* U+091F,U+094D,U+200C,U+092F,U+093F
* (Matra moves to the middle, after ZWNJ.)
*
* U+091F,U+094D,U+200D,U+092F,U+093F
* (Matra does NOT move, stays to the left.)
Fixes https://github.com/harfbuzz/harfbuzz/issues/1070
Test case added with Adobe Devanagari.
2018-07-03 14:34:38 +04:30
Behdad Esfahbod
2cb075fe26
Fix unused function '_hb_mapped_file_destroy' if no mmap
2018-07-03 13:04:05 +04:30
Behdad Esfahbod
343e8c694b
1.8.2
2018-07-03 12:43:59 +04:30
Behdad Esfahbod
29e7879bcf
Disable .dfont code for now
...
The get_table imple was wrong, as table offsets in a dfont are
relative to the resource. We were treating them as relative to
the big blob itself. To be fixed.
Part of https://github.com/harfbuzz/harfbuzz/pull/1085
2018-07-03 12:38:21 +04:30
Ebrahim Byagowi
32348a43c1
Fix trak table apply logic
...
In collaboration with Behdad
2018-07-01 15:32:43 +04:30
Ebrahim Byagowi
225b92b7d4
Support dfont font files ( #949 )
2018-07-01 14:32:00 +04:30
Ebrahim Byagowi
5d8cafcf6a
Improve nommap naming and use C style comments on create_from_file ( #1084 )
2018-07-01 01:54:14 +04:30
Behdad Esfahbod
d3c0980ac2
Adjust MarkBasePos heuristic in presence of MultipleSubst
...
From the issue:
"In this font, the virama,ya first forms a ligature, then decomposes back to
virama,ya. This causes those two to be marked parts of a MultipleSubst
sequence. When attaching the matra, we look for the first of the MultipleSubst
sequence because that's where we attach to (because of eg #740 ). In this case,
the first glyph in the MultipleSubst sequence is a mark, so we skip it and
attach to the base char before it."
Font in question is Nirmala UI from Windows 10. Test sequence:
U+0926,U+094D,U+092F,U+0941
Fixes https://github.com/harfbuzz/harfbuzz/issues/1020
2018-06-30 15:59:25 +04:30
Behdad Esfahbod
8b9cbe3b24
[indic] Tweak for old-spec Bengali and halant-ya-halant
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1073
2018-06-30 12:28:39 +04:30
punchcutter
9541c9dae1
Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara
2018-06-30 10:02:34 +04:30
Behdad Esfahbod
7b8dfac560
[khmer] Fix infinite-loop in cluster merging
...
Indic shaper already had this check. We removed it when forking
Khmer shaper by mistake.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623
2018-06-30 09:16:54 +04:30
Ebrahim Byagowi
25970a93aa
armcc compatibility, don't use EINTR if doesn't exist
...
Fixes #1081
2018-06-28 14:32:36 +04:30
Ebrahim Byagowi
8a51f91b70
Minor on hb_blob_create_from_file, reuse ferror result
...
Oops
2018-06-28 13:22:21 +04:30
Ebrahim Byagowi
7b4099f35f
Minor, rename blob to data on blob_from_file
2018-06-27 16:54:44 +04:30
Ebrahim Byagowi
fa090ed4d4
Minor touches on hb_blob_create_from_file ( #1079 )
...
* Handle EINTR on fallback reader
* Increase fallback reader limitation size limitation to 2 << 28
* Ensure _O_BINARY does exist if MMAP is used on Windows
(maybe superfluous but makes me more confident)
2018-06-27 14:13:26 +04:30
Behdad Esfahbod
01dff1ea1a
Make round() fallback portable to systems that do have round()
...
Makes compiling without HAVE_ROUND on systems that do have it work.
2018-06-26 18:00:58 -04:00
Ebrahim Byagowi
7db2e9ea38
Minor on hb_blob_create_from_file
...
Add one more "unlikely" annotation and use explicit nullptr check for more consistency.
2018-06-26 10:46:10 +04:30
Ebrahim Byagowi
35ce8f31d3
Unify our pipe reader with the fallback reader ( #1068 )
...
And assign one bot to use the path always using NOMMAPFILEREADER token.
It's limited to 200mb so no more fun with using /dev/zero on hb-view!
2018-06-25 22:23:43 +04:30
Behdad Esfahbod
b2a1879187
In Coverage iterator, bail out if table smells
...
In particular, if CoverageFormat2 has unsorted ranges, bail out.
Otherwise, 64k ranges of each 64k glyphs can DoS closure() method.
We can do the same for CoverageFormat1, but that one does not expose
the quadratic behavior, so, fine.
2018-06-23 10:32:28 -04:00
Ebrahim Byagowi
941f2b8548
Support pipe and friends on hb_blob_create_from_file ( #1061 )
...
With this hb-view/hb-shape support pipes and possibly socket and named pipe
also, anything fails just on mmap.
We can later do the same for Windows also.
This however reveals two issues, the fact most of our bots don't have HAVE_MMAP and using
this instead the other fread/fopen reader can make failure on CI. I should look at them separately
this change however is very low risk I believe.
2018-06-18 20:35:40 +04:30
Behdad Esfahbod
3654d9be6b
1.8.1
2018-06-12 19:38:04 -04:00
Behdad Esfahbod
f6893ef82c
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.
2018-06-12 19:26:15 -04:00
Behdad Esfahbod
cc0b04f48f
[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.
2018-06-12 18:24:54 -04:00
Behdad Esfahbod
ba0ea56efa
[substitute-closure] Rename function for clarity
2018-06-12 01:17:00 -04:00
Behdad Esfahbod
7b5ce41638
Whitespace
2018-06-12 01:17:00 -04:00
Behdad Esfahbod
c4d0d11c55
[vector] Always 0-fill new items
2018-06-12 01:17:00 -04:00
Behdad Esfahbod
a7e1b4a3b2
Fix compiler warning re reordering of initializations
2018-06-12 01:17:00 -04:00
Behdad Esfahbod
f56cd9df10
Style
2018-06-12 01:17:00 -04:00
Jonathan Kew
82484b05ca
[hb-set] Don't shrink vectors until after processing their contents.
...
Fixes #1054 .
2018-06-12 01:16:42 -04:00
Behdad Esfahbod
b8e406f0c7
More fixes for SunStudio 12.6 build
...
Followup to https://github.com/harfbuzz/harfbuzz/pull/1053
2018-06-10 17:22:38 -04:00
prrace
498e4373dc
Fix SunStudio 12.6 build ( #1053 )
2018-06-10 03:34:28 +04:30
Garret Rieger
46f7e7760f
[subset] Use REPLACEME instead of version.
2018-06-08 12:09:34 -06:00
Garret Rieger
feb23892a3
[subset] Use gsub closure if ot layout is not being dropped.
2018-06-08 12:09:34 -06:00
Garret Rieger
a5673da9be
[subset] Add drop_ot_layout setting to subset input.
2018-06-08 12:09:34 -06:00
Garret Rieger
57badadb76
[subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
2018-06-06 17:50:12 -06:00
Behdad Esfahbod
11f1f4131b
[set] Add is_subset
...
New API:
+hb_set_is_subset()
2018-06-06 16:47:13 -07:00
Garret Rieger
45186b9b8c
[subset] Add memoization of GSUB lookup closures.
2018-06-06 16:53:50 -06:00
Behdad Esfahbod
78d92e0f27
Minorish
2018-06-06 15:24:43 -07:00
Behdad Esfahbod
676b19f0d1
Compiler gymnastics
...
Part of https://github.com/harfbuzz/harfbuzz/issues/630
2018-06-06 15:23:35 -07:00
Behdad Esfahbod
0a5952e8dd
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
2018-06-06 14:56:21 -07:00
David Corbett
a2a1484ef9
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.
2018-06-06 11:06:16 -07:00
Behdad Esfahbod
9d3cd13c30
[ucdn] Update to Unicode 11
...
https://github.com/grigorig/ucdn/issues/19
2018-06-05 17:59:41 -07:00
Behdad Esfahbod
060e6b4a13
Update to Unicode 11.0.0
...
UCDN is not updated yet.
2018-06-05 17:31:46 -07:00
Behdad Esfahbod
105a3b5e2d
Minor
2018-06-05 15:31:04 -07:00
Behdad Esfahbod
df01f3e560
1.7.7
2018-06-05 15:18:16 -07:00
Behdad Esfahbod
ba3b6d6c65
[khmer] Fix Coeng vs Halant confusion
...
Test suite results are unchanged (34).
2018-06-05 12:06:50 -07:00
Ebrahim Byagowi
8220ef8a54
Fix hb_face_count build issue
...
I should've rebased #1002 before the merge, my bad
2018-06-05 22:50:53 +04:30
Ebrahim Byagowi
32da0c6bc4
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.
2018-06-05 18:56:26 +04:30
Behdad Esfahbod
4a115fe7fe
[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
2018-06-04 15:40:43 -07:00
Behdad Esfahbod
58400a2ad8
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.
2018-06-02 20:30:09 -07:00
Behdad Esfahbod
f9abbf83b6
Fix fallout from 975bdd5ef5
...
Ouch!
2018-06-02 15:46:08 -07:00
Behdad Esfahbod
f7515769fd
[vector] Use Crap pool in push() as well
2018-06-01 17:48:37 -07:00
Behdad Esfahbod
975bdd5ef5
[vector] Keep success status
2018-06-01 17:37:13 -07:00
Behdad Esfahbod
1ab3c3ed1b
[vector] Whitespace
2018-06-01 17:34:24 -07:00
Behdad Esfahbod
fb07d1a3ce
Another attempt at making every compiler happy...
...
Sigh.
2018-06-01 17:32:07 -07:00
Behdad Esfahbod
4f76f956bb
[map] Move prime_for to hb-static
2018-06-01 17:28:47 -07:00
Behdad Esfahbod
33d6f46bbb
[set] Shrink page-map size again
2018-06-01 17:25:35 -07:00
Behdad Esfahbod
4ca211bce1
Fix hb_vector_size_t
2018-06-01 17:19:05 -07:00
Behdad Esfahbod
a7dd90f519
Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN"
...
This reverts commit ff92de766b
.
Revert that and remove ASSERT_POD. Let's see which bots are
unhappy with this configuration...
2018-06-01 16:10:45 -07:00
Behdad Esfahbod
7b50bf52f2
Use NullPool for _hb_set_nil and _hb_map_nil
2018-05-31 20:20:17 -07:00
Behdad Esfahbod
f040ca40ab
[set] Minor
2018-05-31 20:15:21 -07:00
Behdad Esfahbod
7185b273b3
Rename in_error to !successful
...
Towards possibly using Null pool for some nil objects.
2018-05-31 20:03:34 -07:00
Behdad Esfahbod
353f4d2efc
Fix a whitespace inconsistency
...
Null() and Crap() are only places that there's no space before '('...
2018-05-31 19:52:16 -07:00
Behdad Esfahbod
e36cd1dfd3
Remove trivial HB_ATOMIC_INT_INIT()
2018-05-31 19:31:39 -07:00
Behdad Esfahbod
550a70f801
Use 0 as inert object reference value instead of -1
...
Towards using Null object for nil objects.
2018-05-31 19:28:04 -07:00
Behdad Esfahbod
dcd1b07eea
Add const OffsetTo<> dereference
...
Unused, but now that we have CrapPool, implement it.
2018-05-31 17:58:40 -07:00
Ebrahim Byagowi
2baa357ac7
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.
2018-05-31 12:27:31 +04:30
Behdad Esfahbod
54800f8322
[map] Mark prime_for HB_INTERNAL
...
Trying to see if it fixes gcc-4.2 bots.
2018-05-30 16:26:50 -07:00
Behdad Esfahbod
d600e844aa
Add CrapOrNull
2018-05-30 16:25:57 -07:00
Garret Rieger
251cc977e9
[subset] Switch to using hb_map_t inside of hb_subset_plan_t.
2018-05-30 17:23:59 -06:00
Behdad Esfahbod
b3d45de6cf
[map] Fix size calculation
...
Don't know why I thought I should subtract one there...
2018-05-30 14:02:49 -07:00
Behdad Esfahbod
ff92de766b
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.
2018-05-29 18:48:45 -07:00
Behdad Esfahbod
a244434622
[map] Fix resize
2018-05-29 18:32:57 -07:00
Behdad Esfahbod
efbab6ba3f
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.
2018-05-29 18:21:55 -07:00
Behdad Esfahbod
8c2c5d4508
[map] Not going to implement is_equal which is complicated
2018-05-29 18:15:52 -07:00
Behdad Esfahbod
ccd01c6555
[map] Move prime_mod to header to avoid linkage issues in subset.so
2018-05-29 18:13:13 -07:00
Behdad Esfahbod
6baebc5d55
[map] Fix copyright year
2018-05-29 17:58:46 -07:00
Behdad Esfahbod
b0158129d2
[map] Minor
2018-05-29 17:52:37 -07:00
Behdad Esfahbod
4099c66f70
[map] Don't return INVALID from get() just because in_error
2018-05-29 17:52:07 -07:00
Behdad Esfahbod
2578390773
[map] Fix bool use in C API
2018-05-29 17:34:35 -07:00
Behdad Esfahbod
a9fa39dca5
[map] More minor
2018-05-29 17:31:01 -07:00
Behdad Esfahbod
f76c4a7708
[map] Make initial resize actually work
2018-05-29 17:27:25 -07:00
Behdad Esfahbod
661e9ae4a5
[map] Add clear(), is_empty(), and get_population()
2018-05-29 17:09:17 -07:00
Behdad Esfahbod
b6959c33e2
[map] Minor
2018-05-29 17:02:22 -07:00
Behdad Esfahbod
686476a8ae
[map] Track population and occupancy separately
2018-05-29 17:00:02 -07:00
Behdad Esfahbod
8a978790cb
[map] Minor
2018-05-29 16:45:20 -07:00