Behdad Esfahbod
e42cd58c99
Rename invisible_codepoint to invisible_glyph in API
...
Deleted recently added API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
hb-shape / hb-view --invisible-codepoint
New API:
hb_buffer_set_invisible_glyph()
hb_buffer_get_invisible_glyph()
hb-shape / hb-view --invisible-glyph
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
2018-10-07 20:47:30 -04:00
Behdad Esfahbod
2a5cb37fdb
Revert "[morx] Fix MORX-35"
...
This reverts commit f62f6e90ad
.
2018-10-07 20:37:15 -04:00
Behdad Esfahbod
14ebf8af0c
[buffer] Improve shift_forward()
...
"Improve" is a strong word in this case though, I understand.
2018-10-07 20:35:06 -04:00
Behdad Esfahbod
f62f6e90ad
[morx] Fix MORX-35
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1224
2018-10-07 18:52:48 -04:00
Behdad Esfahbod
94368855c6
Remove some code
...
We use scratch-flags to short-circuit this function. No need for previous
early loop.
2018-10-07 18:52:48 -04:00
Behdad Esfahbod
fdce1e1543
[kerx] Clean up kerx and KerxTable structures
2018-10-07 14:01:33 -04:00
Behdad Esfahbod
71b65eb27d
Add API for setting invisible-codepoint
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
New API:
hb_buffer_set_invisible_codepoint()
hb_buffer_get_invisible_codepoint()
hb-shape / hb-view --invisible-codepoint
2018-10-07 18:43:26 +02:00
Behdad Esfahbod
13da3be0b3
[ot-font] Load hmtx/vmtx lazily
...
Since we have get_*_advanes() API now, the overhead is once per shape,
not once per glyph.
Only cmap is warmed-up at set_funcs() time now.
2018-10-07 18:25:41 +02:00
Behdad Esfahbod
856db4c918
Minor
2018-10-07 18:21:15 +02:00
Behdad Esfahbod
b2e398c077
[coretext] Fix OS X check
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1230
2018-10-07 16:31:33 +02:00
Behdad Esfahbod
7ee50af836
[morx] Fix memory access issues with unsafe_to_break
2018-10-06 21:31:44 +02:00
Behdad Esfahbod
0816a54978
[uniscribe/coretext] Fix for previous change
2018-10-06 02:40:57 +02:00
Behdad Esfahbod
341206eb60
[vector] Make hb_vector_t relocatable / nestable
...
Ugly, but...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
2018-10-05 18:39:48 +02:00
Behdad Esfahbod
5469d80707
Add hb_vector_t::fini_deep ()
2018-10-05 18:21:08 +02:00
Behdad Esfahbod
4831e615d1
[morx] Fix memory access issue
...
If buffer was enlarged, info was being outdated.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1225
2018-10-05 18:14:13 +02:00
Behdad Esfahbod
a62f37d6fa
Change vendor features from Harf/Buzz to HARF/BUZZ
...
a01194aaf4 (commitcomment-30772041)
"The tag space of tags consisting of four uppercase letters (A-Z) with no punctuation,
spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to
identify private features."
2018-10-05 02:49:29 +02:00
Behdad Esfahbod
a01194aaf4
Enable two OpenType features, 'Harf' and 'Buzz'
...
One early, before script-specific features, one late, after. Allows font
developers to detect us and behave differently if needed.
2018-10-04 13:00:37 +02:00
Behdad Esfahbod
14ff3cbe0f
Apply morx if there's no GSUB!
2018-10-04 11:34:21 +02:00
Behdad Esfahbod
3417037eb1
[aat] Add +hb_aat_layout_has_substitution
2018-10-04 11:17:19 +02:00
Sascha Brawer
7810bb1a59
[morx] Only insert glyphs at mark when a mark has been set before
...
This reverts commit f4072e8cb8
.
https://github.com/harfbuzz/harfbuzz/issues/1195
2018-10-04 10:29:23 +02:00
Ebrahim Byagowi
5de2d9cdbd
Minor, fix double-promotion warnings ( #1221 )
2018-10-04 02:14:18 +03:30
mhosken
e4e74c2751
Update Graphite API to latest ( #1215 )
2018-10-03 23:03:26 +03:30
Behdad Esfahbod
b710ea4fde
Clean Fitzpatrick hack
2018-10-03 21:17:59 +02:00
Behdad Esfahbod
95e5f1ae69
Unbreak Fitzpatrick
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1159
2018-10-03 21:11:40 +02:00
Behdad Esfahbod
03fb6dd4c7
Rewrite grapheme-formation in terms of new work
...
Also, don't attach ZWNJ to previous cluster. Closer to Unicode graphemes.
2018-10-03 21:11:40 +02:00
Behdad Esfahbod
68106b1d9b
Minor
2018-10-03 21:11:40 +02:00
Behdad Esfahbod
06922acbc4
Fix distcheck
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
4eea2e279b
[thai] Set continuation on decomposed nikhahit
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
8edc91022c
[indic] Reset continuation on inserted dottedcircle
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
2a6f15213e
[buffer] Inline some more
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
6f39c22029
Add code
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
19d50aa262
[indic] Simplify dottedcircle
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
3b78318510
[emoji] Mark emoji contination sequences as continuation
...
This adds a new grapheme bit. Not used yet.
Part of https://github.com/harfbuzz/harfbuzz/issues/1159
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
123326e20a
Dotted-circle all marks, not just non-spacing, at text beginning
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
674560cf24
Fix build
2018-10-03 19:10:28 +02:00
Behdad Esfahbod
45e55f7080
[indic] Fix clang everything
2018-10-03 18:45:27 +02:00
Behdad Esfahbod
4df02e3240
Minor
2018-10-03 18:45:27 +02:00
Behdad Esfahbod
1e8f195b96
[emoji] Add emoji Extended_Pictographic table and function
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1159
.
2018-10-03 18:45:27 +02:00
Behdad Esfahbod
1dc601b04a
[os2] Minor rename/shuffle
2018-10-03 18:45:27 +02:00
Behdad Esfahbod
df32eaae42
[indic] Disallow vowel mark combinations that spoof other vowel marks
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1019
New numbers:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707261 out of 707394 tests passed. 133 failed (0.0188014%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
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%)
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%)
Devanagari regressed because Uniscribe doesn't enforce the full set.
Tests added with the *-vowel-letters.txt files in tree and Noto fonts.
2018-10-03 15:53:28 +02:00
Behdad Esfahbod
1b8d5e9991
[thai] Minor
2018-10-03 15:31:33 +02:00
Behdad Esfahbod
0dd9101fd0
Minor
2018-10-03 15:31:33 +02:00
Behdad Esfahbod
9c4ffd10c4
Minor
2018-10-03 15:31:33 +02:00
HinTak
bd1be8738f
Missing colon for gobject annotation
...
There should be a colon separating "(transfer full)" and the rest. Warned by g-ir-scanner.
2018-10-03 15:31:26 +02:00
Behdad Esfahbod
75114e01d2
[use] Add Halant_Or_Vowel_Modifier category
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1102
2018-10-03 12:30:23 +02:00
Ebrahim Byagowi
6353cc1f83
[circleci] Fix some of warnings from clang-everything bot ( #1211 )
...
* -Wshift-sign-overflow
* -Wmissing-prototypes
2018-10-02 21:39:19 +03:30
Behdad Esfahbod
fef7af1e22
[tibetan] Remove unused Tibetan shaper
2018-10-02 18:46:13 +02:00
Behdad Esfahbod
32a438166f
[tibetan] Route Tibetan through USE
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/933
https://github.com/harfbuzz/harfbuzz/issues/1012
Tibetan failures go from 0 to 2:
TIBETAN: 208467 out of 208469 tests passed. 2 failed (0.000959375%)
2018-10-02 18:44:57 +02:00
Behdad Esfahbod
77792187be
[khmer] Remove unused khmer_position()
2018-10-02 18:20:16 +02:00
Behdad Esfahbod
5101abd42f
[indic/use] Factor common expressions in ragel machine
...
No machine change.
2018-10-02 17:49:06 +02:00
Behdad Esfahbod
6f457f8370
[indic] Minor flip grammar around
...
No behavior change.
2018-10-02 17:46:27 +02:00
Behdad Esfahbod
40d5d19d5b
[ragel] Use ts/te (token-start / token-end) instead of manual tracking
2018-10-02 17:04:05 +02:00
Behdad Esfahbod
9efddb9de8
Treat a base+mark... ligature as base, not ligature
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/746
2018-10-02 16:05:26 +02:00
Behdad Esfahbod
3cca978723
Move code around
2018-10-02 15:02:35 +02:00
Behdad Esfahbod
0a371fee4d
Minor
2018-10-02 14:48:39 +02:00
Behdad Esfahbod
94d15528f8
Minor
2018-10-02 14:45:09 +02:00
Behdad Esfahbod
729f634728
Disable joiner-skipping when looking back for base to attach mark to
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1189
2018-10-02 14:41:31 +02:00
Behdad Esfahbod
c36f3f5bef
[arabic] Use manual-zwj instead of flipping joiners
2018-10-02 14:36:47 +02:00
Behdad Esfahbod
48c513fec9
Minor
2018-10-02 14:19:34 +02:00
Behdad Esfahbod
cca757ae56
Minor
2018-10-02 14:10:26 +02:00
Behdad Esfahbod
96eca87f89
Move things
2018-10-02 13:24:40 +02:00
Behdad Esfahbod
588a4ac8bc
Rename
2018-10-02 13:16:43 +02:00
Behdad Esfahbod
10b6c7c638
Minor include cleanup
2018-10-02 13:11:18 +02:00
Behdad Esfahbod
1d1734e985
Shuffle code around
2018-10-02 13:04:05 +02:00
Khaled Hosny
d27e5ec3a2
Skip BOM in the Python sample file
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1208
2018-10-02 08:25:29 +02:00
HinTak
f9ea3dc4c6
Missing "out" indicator ( #1209 )
...
Missing "out" indicator. Affect gobject introspection.
2018-10-02 09:13:06 +03:30
Ebrahim Byagowi
f72b748371
[circleci] Fix "msan" and "everything" bots ( #1205 )
2018-10-02 00:16:08 +03:30
Behdad Esfahbod
8bf4027d23
[indic] Remove Consonant_Medial from grammar and code
...
The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe doesn't treat
specially, and font designers design for that. So, do the same.
2018-10-01 20:05:00 +02:00
Behdad Esfahbod
5143654716
[khmer] Rewrite grammar completely
...
Based on experimenting with Uniscribe to extract grammar and categories.
Failures down from 44 to 35:
KHMER: 299089 out of 299124 tests passed. 35 failed (0.0117008%)
We still don't enforce the one-matra rule pre-decomposition, but enforce
an order and one-matra-per-position post-decomposition.
https://github.com/harfbuzz/harfbuzz/issues/667
2018-10-01 19:23:47 +02:00
Behdad Esfahbod
aaaa65baa7
[khmer] Remove unused code
2018-10-01 16:59:48 +02:00
Behdad Esfahbod
81afdbe803
[use] Disable automatic ZWJ for 'akhn' feature
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/746
2018-10-01 15:27:35 +02:00
Behdad Esfahbod
ceef311dca
[use] Change categories for Left_And_* matras
...
These are only relevant to Sinhala, because they decompose in other
cases. The USE spec categorizes them all as VPst. No idea why we
weren't following that before.
2018-10-01 13:04:49 +02:00
Behdad Esfahbod
3426a36157
Unbreak bots
2018-10-01 12:55:57 +02:00
Behdad Esfahbod
98ac01d3b3
[morx] Break out if buffer gets into error
...
Was getting stuck not making progress somehow.
2018-10-01 12:10:00 +02:00
Behdad Esfahbod
df827a6ab8
[cache] Fix cache coherency corner-case
...
If key_bits+value_bits-cache_bits==32 then -1 is ambiguous...
2018-10-01 11:39:29 +02:00
Ebrahim Byagowi
0fa1edbd3b
[circleci] Couple of fixes ( #1200 )
...
* Raise error on warnings on -everything
* Enable fontconfig to two bots
* Fix msan bot now that all of its real complain are gone
2018-10-01 09:40:29 +03:30
Behdad Esfahbod
ad1c190ecf
Correct fix for glib-mkenum warning
2018-09-30 18:26:45 +02:00
Behdad Esfahbod
1dd1e56bf4
Revert "Fix glib-mkenum warning"
...
This reverts commit 247756a7d8
.
Was wrong. Right fix coming.
2018-09-30 18:25:58 +02:00
Behdad Esfahbod
3f08750fa6
Move _POSIX_SOURCE to hb.hh
2018-09-30 18:23:34 +02:00
Behdad Esfahbod
90dd255e57
Change _HB_SCRIPT_MAX_VALUE from 0xFFFFFFFF to 0x7FFFFFFF
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/504
2018-09-30 18:19:54 +02:00
Behdad Esfahbod
5c65ed800d
Fix bug introduced in 9b0b40b3c1
...
Also discovered by msan bot.
2018-09-30 17:49:33 +02:00
Behdad Esfahbod
247756a7d8
Fix glib-mkenum warning
...
GEN hb-gobject-enums.h
WARNING: Failed to parse "/*< private >*/" in ../../src/hb-buffer.h
2018-09-30 17:49:33 +02:00
Behdad Esfahbod
b1e07e1e6c
[indic/khmer] Remove use of global constructors
...
Alternative woul have been to resurrect F_COMBINE that I removed in
70136a78cb
But this does it for now. I'm not sure why check-static-inits.sh didn't
catch this before. Clang -Weverything bot did:
CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo
hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors]
indic_features[] =
^
1 warning generated.
CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo
hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors]
khmer_features[] =
^
1 warning generated.
2018-09-30 06:08:11 -04:00
Behdad Esfahbod
00cd00e641
Tweak HB_TAG and HB_UNTAG
...
uint32_t was getting promoted to signed int, which is not what we wanted...
Wow, clang has become good at generating warnings...
../../src/hb-common.h:349:29: warning: signed shift result (0xFF000000) sets the sign bit of the shift expression's type ('int') and becomes negative [-Wshift-sign-overflow]
_HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/
^~~~~~~~~~
../../src/hb-common.h:93:20: note: expanded from macro 'HB_TAG_MAX'
define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/hb-common.h:89:57: note: expanded from macro 'HB_TAG'
define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))
~~~~~~~~~~~~~~~^ ~~
../../src/hb-common.h:349:3: warning: ISO C restricts enumerator values to range of 'int' (4294967295 is too large) [-Wpedantic]
_HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/
^ ~~~~~~~~~~
2018-09-30 06:08:11 -04:00
Behdad Esfahbod
8a31e40629
[font] Make *_advance() fallback to *_advances
...
And remove redundant implementations.
2018-09-30 06:08:11 -04:00
Behdad Esfahbod
bd07d2878f
Use buffer scratch_flags to remember if we had any joiners
2018-09-30 06:08:11 -04:00
Behdad Esfahbod
ba0f0f156f
Document setlocale() threadsafety issue
...
"Fixes" //github.com/harfbuzz/harfbuzz/issues/1191
2018-09-30 06:08:11 -04:00
Behdad Esfahbod
9b0b40b3c1
Fix fallback kerning to check for current glyph's mask
2018-09-28 20:53:23 -04:00
Behdad Esfahbod
f4072e8cb8
[morx] Remove mark_set from Insertion
...
text-rendering-tests test MORX-32 shows that for Insertion, an unset mark is treated
as mark set at 0. This is unlike the Reordering lookup where un unset mark performs
nothing.
Fixes MORX-32.
2018-09-28 10:14:23 -04:00
Behdad Esfahbod
0d18ec5467
[morx] unsafe-to-break in Insertion
...
Makes MORX-29, MORX-30, MORX-31 pass.
2018-09-28 10:01:59 -04:00
Behdad Esfahbod
b435df3a5b
More atomic tuneup
2018-09-28 09:13:14 -04:00
Behdad Esfahbod
d2542cd28c
More atomic fixup
2018-09-27 17:23:24 -04:00
Behdad Esfahbod
3ee96984f4
Fixup atomics from recent change
2018-09-27 17:20:26 -04:00
Behdad Esfahbod
305468708d
[cache] Use atomic writes in clear()
...
To help TSan.
2018-09-27 16:54:23 -04:00
Volker Krause
9e9a36ee65
Fix infinite loop when walking up the directory hierarchy ( #1183 )
...
A single find_package(harfbuzz) line in user code resulted in this loop
getting stuck when _harfbuzz_libdir_iter became "/".
2018-09-27 18:03:49 +03:30
Behdad Esfahbod
662f7d7e8b
[arabic] Do the joiner-flipping only for rlig feature
...
See comment.
2018-09-26 18:54:09 -04:00
Behdad Esfahbod
7f30629cdd
[ft] Make TSan happy
2018-09-26 16:40:59 -04:00
Behdad Esfahbod
ec743fce2a
Add more atomic intrinsics
2018-09-26 16:40:59 -04:00
Behdad Esfahbod
90a0f9fa0c
Make TSan happy with make_immutable()
2018-09-26 15:03:07 -04:00
Behdad Esfahbod
824111d484
Fix iOS build
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1179
2018-09-25 12:47:48 -04:00
Behdad Esfahbod
6c0e7eb6a6
Minor
2018-09-24 19:07:23 -04:00
Behdad Esfahbod
d748dc7664
More iter inits
2018-09-24 18:30:50 -04:00
Behdad Esfahbod
d9867497d0
Minor
2018-09-24 18:11:59 -04:00
Behdad Esfahbod
70136a78cb
Remove F_COMBINE
...
Now I wonder if any bots will be unhappy we calling | in static const initializations...
Or would that cost runtime init? Our tests don't detect any..
2018-09-24 18:04:17 -04:00
Behdad Esfahbod
f048ead84a
Some more
2018-09-24 18:04:17 -04:00
Behdad Esfahbod
1676f608c8
Minor refactoring
2018-09-24 18:04:17 -04:00
Behdad Esfahbod
4839807340
[check-static-inits.sh] Allow some if ubsan is in effect
2018-09-24 13:11:34 -04:00
Behdad Esfahbod
e45ba31dc7
[check-symbols.sh] Allow weak objects "V"
...
ubsan generates these.
2018-09-24 13:04:48 -04:00
Behdad Esfahbod
2d93148a0f
Ignore weak symbols in check-symbols.sh
...
Some clang versions leave a std::round(float) weak symbol around...
2018-09-24 11:52:22 -04:00
Behdad Esfahbod
55bae6825e
[docs] A few improvements
...
If we wrote just this much every day...
2018-09-24 10:43:06 -04:00
Behdad Esfahbod
57fa2c23de
Readjust Hebrew composition again
2018-09-24 09:57:52 -04:00
Behdad Esfahbod
7f335390f3
Revert change that would decompose text if GPOS mark feature is available
...
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
2018-09-24 09:56:18 -04:00
Behdad Esfahbod
a6f4b2f7cd
Fix normalization
...
62d1e0852a (commitcomment-30613091)
2018-09-24 09:54:37 -04:00
Behdad Esfahbod
3583fb03b1
Simplify ZWJ-skipping a bit
...
Towards disabling ZWJ-skipping in certain GPOS contexts.
Part of https://github.com/flutter/flutter/issues/16886
2018-09-23 22:33:38 -04:00
Behdad Esfahbod
9516cbd3df
Reinit skippy iters when auto_zwj / auto_zwnj change
...
Ouch. How did we not hit this bug before...
2018-09-23 22:00:34 -04:00
Behdad Esfahbod
62d1e0852a
Prefer decomposed form if font has GPOS mark feature
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
2018-09-23 21:32:18 -04:00
Behdad Esfahbod
d7f21777e6
[ot-font] Fix leak
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1171
I'm glad we have leak-detector bots now.
2018-09-23 19:12:52 -04:00
Matt Oliver
24dd6c1a9d
src/hb-blob.cc: Fix mmap functionality with UWP.
2018-09-23 07:23:58 -07:00
Behdad Esfahbod
5fd8bce945
[morx] Fix mark_set check
2018-09-19 22:34:09 -04:00
Behdad Esfahbod
0739b28169
[aat] Minor
2018-09-19 17:32:21 -04:00
Behdad Esfahbod
7671cb9b04
[coretext] Minor
2018-09-19 17:10:26 -04:00
Behdad Esfahbod
dc8ed45292
[morx] Implement forward/backward processing
...
We reverse too many times. Can be optimized. But I doubt many fonts
use reverse lookups, so doesn't matter.
Other than not applying user features, this completes morx table
implementation.
2018-09-19 16:47:25 -04:00
Behdad Esfahbod
3bccd62196
[morx] Implement horiz-only/vert-only subtables
2018-09-19 16:24:34 -04:00
Behdad Esfahbod
041a08de3d
[morx] Improve buffer position in Insertion w DontAdvance and wo
...
Just speculation. Needs tests to determine which is correct behavior.
2018-09-19 16:02:56 -04:00
Behdad Esfahbod
388ab91642
[morx] Implement InsertionChain
2018-09-17 20:28:32 +02:00
David Corbett
d8d1e7df00
Don't enforce a native direction for Old Hungarian
2018-09-17 18:53:25 +02:00
Behdad Esfahbod
606bf57430
Revert forcing use of single-parameter static_assert()
...
Some clang versions define static_assert as a macro apparently, so we cannot
redefine it...
This reverts commit 94bfea0ce6
.
This reverts commit 4e62627831
.
2018-09-16 19:34:39 +02:00
Behdad Esfahbod
cbcaba6ffd
One more bot fix
2018-09-16 19:25:19 +02:00
Behdad Esfahbod
89dd4b9597
Fix bots
...
"Unused private member" warning turned error. ugh.
2018-09-16 18:11:46 +02:00
Behdad Esfahbod
4e62627831
Enforce single-param static_assert() only
...
So we don't accidentally break it again.
2018-09-16 18:09:36 +02:00
Behdad Esfahbod
f1a86e1e6f
Remove unused try
2018-09-16 18:01:32 +02:00
Behdad Esfahbod
ebd50b3c83
Fix static_assert
2018-09-16 17:57:12 +02:00
Behdad Esfahbod
10642b3fbf
Disallow null-enabled offsets to unsized structures...
...
...like UnsizedArrayOf<>.
This fixes a class of crasher bugs, mostly with color and AAT tables. We
cannot use nullable offsets to varsized data that does not declare min_size,
because it's nost safe to use our fixed-size null pool for types that have
their size external. So, use non_null'able offsets for these.
A further enhancement would be to make use of min_size in Null<> itself.
Will try that after.
2018-09-15 19:43:33 +02:00
Behdad Esfahbod
9ff76c6025
[morx] Respect default feature settings
...
Does NOT apply user-selected features. But at least now enables
correct subtables.
2018-09-15 18:31:14 +02:00
Behdad Esfahbod
2f97da6e2d
[aat] Change version field
2018-09-15 14:51:50 +02:00
Behdad Esfahbod
29c2bd1795
[morx] Add stub for InsertionChain
2018-09-15 14:47:18 +02:00
Behdad Esfahbod
f8ccb545c4
[dfont] Disable null-processsing for offsets
...
An offset to unsized arrayis not safe to be redirected to our fixed-sized
null pool. Plus, we want to reject, not repair, bad-looking dfonts.
2018-09-14 18:59:53 +02:00
Behdad Esfahbod
01b9148d9a
[unicode] Move Fitzpatrick hack from ot-layout into unicode.hh
2018-09-14 14:23:09 +02:00
Behdad Esfahbod
6ebbf514ac
Minor
2018-09-14 12:15:53 +02:00
Behdad Esfahbod
957dbed388
Fix builds
2018-09-14 12:14:42 +02:00
Behdad Esfahbod
4653e6cf3c
[aat] Add enums for pre-defined state and classes
...
Not sure how I didn't add before...
2018-09-14 11:31:33 +02:00
Behdad Esfahbod
67449c3933
Don't dereference offset before check_struct()
2018-09-14 10:58:00 +02:00
Behdad Esfahbod
ca746f261e
[dfont] Also check dataLen range in sanitize
...
Just to disagree with myself re being done with this code...
2018-09-13 20:35:21 +02:00
Behdad Esfahbod
3789c557ca
[dfont] Solve the mystery +2 offset thing!
...
Previously, ResourceForkHeader was defined as 30 bytes, having the typeCountM1 as last member.
There was a mysterious offset-by-2 in the code, derived from FontTools and JDK code this was
ported from.
In testing, I observed that typeListZ offset is actually 28. Suggesting that the typeCountM1
does NOT actually belong to ResourceForkHeader, but belongs to the array itself. Adjusting for
that resolves the mystery +2 offset hack, so everything is clean and good now.
This, concludes my dfont hacking. The code looks great now, and I'm happy to leave it.
Fuzzers might disagree though, we will see!
2018-09-13 20:32:13 +02:00
Behdad Esfahbod
effc7ced72
Rename HeadlessArrayOf::len to lenP1
...
So it doesn't accidentally match our templates, etc.
2018-09-13 20:21:54 +02:00
Behdad Esfahbod
180a88a96c
[dfont] Some more
2018-09-13 19:26:44 +02:00
Behdad Esfahbod
0ab0f1e5ac
[dfont] Push methods further down
2018-09-13 19:13:01 +02:00
Behdad Esfahbod
8c9bdcc1fe
[dfont] Minor
2018-09-13 19:08:22 +02:00
Behdad Esfahbod
4479d3a2ed
[dfon]t Sanitize OpenTypeFontFace
2018-09-13 19:06:50 +02:00
Behdad Esfahbod
3fba41906f
[dfont] Minor
2018-09-13 18:49:16 +02:00
Behdad Esfahbod
bf852f0e62
[dfont] Make test pass
...
Offset 0 is not null in this context.
2018-09-13 18:47:53 +02:00
Behdad Esfahbod
29faebe911
Allow Offset<>'s that have no 0==null
2018-09-13 18:47:25 +02:00
Behdad Esfahbod
82f4d776c2
[dfont] Minor
2018-09-13 18:27:20 +02:00
Behdad Esfahbod
07e0ca930c
[bytes] Rename content to arrayZ
2018-09-13 17:39:51 +02:00
Behdad Esfahbod
dbb764dceb
[dfont] Clean up sanitize()
...
I don't think I broke anything. Fuzzers will let me know..
2018-09-13 17:21:00 +02:00
Behdad Esfahbod
361fc26861
Fix OffsetTo::sanitize() after reshuffling
2018-09-13 16:47:33 +02:00
Behdad Esfahbod
4c6b0fb5f6
OffsetTo::sanitize() Add version with three user_data
2018-09-13 16:39:30 +02:00
Behdad Esfahbod
a73bea69c5
OffsetTo::sanitize() more shuffling
2018-09-13 16:31:31 +02:00
Behdad Esfahbod
b482e5231c
OffsetTo::sanitize() reshuffling
2018-09-13 16:29:49 +02:00
Behdad Esfahbod
bd75fd45cd
[dfont] Some renaming, plus add link to reference doc
2018-09-11 18:32:25 +02:00
Behdad Esfahbod
4134ec1307
[dfont] Sanitize only sfnt resources as OpenTypeFontFile
2018-09-11 17:56:03 +02:00
Behdad Esfahbod
6b5e4d07ad
[dfont] Minor
2018-09-11 17:26:24 +02:00
Behdad Esfahbod
d5c509272f
[dfont] Fix test expecatation and minor touch up
...
I have no way to authoritatively know, but looks like test font only has one
face. So, adjust test expectation instead.
2018-09-11 17:18:21 +02:00
Behdad Esfahbod
9479ffefbf
[dfont] Re-enable and fix offset handling
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1085
2018-09-11 16:41:26 +02:00
Behdad Esfahbod
a1814e2bec
Whitespace
2018-09-11 14:45:23 +02:00
Behdad Esfahbod
383060cc33
[ft] Invalidate advance cache if font size changed
2018-09-11 14:41:19 +02:00
Behdad Esfahbod
54998befc4
[ft] Cache advances
...
I decided to always use the cache, instead of my previous sketch direction
that was to only allocate and use cache if fast advances are not available.
The cache is a mere 1kb, so just use it...
TODO: Invalidate cache on font size change.
Fixes https://github.com/harfbuzz/harfbuzz/issues/651
Fixes https://github.com/harfbuzz/harfbuzz/pull/1082
2018-09-11 14:36:14 +02:00
Behdad Esfahbod
047a84c5dd
[ft] Towards caching slow get_h_advance results
...
Related to https://github.com/harfbuzz/harfbuzz/pull/1082
2018-09-11 14:05:16 +02:00
Behdad Esfahbod
237f215378
[ft] Add advances() callback
2018-09-11 13:05:47 +02:00
Behdad Esfahbod
cbea7d49ab
[ot-font] Rename
2018-09-11 12:57:41 +02:00
Behdad Esfahbod
d8a67dac2a
[ot-font] Add advances() callbacks
2018-09-11 12:55:54 +02:00
Behdad Esfahbod
0ea42e117b
[cache] Minor
2018-09-11 12:22:42 +02:00
Behdad Esfahbod
0f520adaac
Revert "Remove unused hb_cache_t"
...
This reverts commit 473b17af4d
.
Updates to recent changes.
2018-09-11 12:07:39 +02:00
Behdad Esfahbod
cfdea88475
[random] Switch to 32bit RNG
2018-09-11 10:57:48 +02:00
Behdad Esfahbod
08260c708a
[random] Shuffle
2018-09-11 10:51:19 +02:00
Behdad Esfahbod
71c9f84e7c
Make --features rand=1 available to the user
...
Use rand=255 to mean "randomize".
Part of https://github.com/harfbuzz/harfbuzz/pull/803
2018-09-11 10:47:59 +02:00
Behdad Esfahbod
cc1c4fdf88
Respect user's wish if they set rand feature manually
...
Except if the set it to 1, which would mean "randomize"... Ugly.
2018-09-11 10:47:59 +02:00
Behdad Esfahbod
80de4bcd26
Minor clean up of 'rand' patchset
2018-09-11 10:47:59 +02:00
David Corbett
b545e27d88
Don't seed the RNG from the contents of the buffer
2018-09-11 10:47:59 +02:00
David Corbett
f05df643b4
Allow requesting a specific glyph for 'rand'
...
Randomization only happens by default. If the user specifies a value for
'rand', that value is respected.
2018-09-11 10:47:59 +02:00
David Corbett
c2a75e07e5
Implement 'rand'
2018-09-11 10:47:59 +02:00
Behdad Esfahbod
96471fe859
[uniscribe] Fix build
2018-09-11 01:39:23 +02:00
Behdad Esfahbod
becd84aa2f
Add HB_FEATURE_GLOBAL_START/END
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1141
New API:
HB_FEATURE_GLOBAL_START
HB_FEATURE_GLOBAL_END
2018-09-11 01:27:25 +02:00
Behdad Esfahbod
13a8786c7c
Add (unused) hb_array_t<>
2018-09-11 01:09:07 +02:00
Behdad Esfahbod
bccf3e1827
Minor
2018-09-11 01:04:50 +02:00
Behdad Esfahbod
dff2c45f1e
Port rest from VAR to UnsizedArrayOf<>
2018-09-11 01:01:08 +02:00
Behdad Esfahbod
9507b05a7a
Simplify sanitize->check_array()
...
Fix a bug in CBDT sanitize, and redundant check in avar.
2018-09-10 23:18:23 +02:00
Behdad Esfahbod
bc485a9812
Port some VAR arrays to UnsizedArrayOf<>
...
Fix avar sanitize().
2018-09-10 23:08:18 +02:00
Behdad Esfahbod
1bc7a8d6c4
[indic] Cache hb_options().uniscribe_bug_compatible on indic_plan
2018-09-10 22:51:26 +02:00
Behdad Esfahbod
24f1d96224
Unbreak HB_OPTIONS
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1154
2018-09-10 18:19:37 +02:00
Behdad Esfahbod
e46c51f1e9
[indic] Do NOT allow matra after Halant,ZWJ
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/556
Devanagari regresses 12 tests, and Gujarati 2. See:
https://github.com/harfbuzz/harfbuzz/issues/556#issuecomment-419957472
New numbers:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707299 out of 707394 tests passed. 95 failed (0.0134296%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
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%)
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-09-10 17:38:19 +02:00
Behdad Esfahbod
5dfd6e0762
Fix sanitize or Context Rule
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1110
2018-09-10 15:45:32 +02:00
Behdad Esfahbod
20a11a824d
Revert "[subset] Disable GSUB/GPOS subsetting for now"
...
This reverts commit 616fd34a69
.
2018-09-10 13:56:28 +02:00
Behdad Esfahbod
54d332dd9b
1.9.0
2018-09-10 11:37:24 +02:00
Behdad Esfahbod
616fd34a69
[subset] Disable GSUB/GPOS subsetting for now
...
So I can get a release out. I haven't debugged those yet, and they
are producing bad tables.
2018-09-10 11:19:49 +02:00
Behdad Esfahbod
d42f0e5809
[atomic] Fix pointer type passed to InterlockedExchangeAdd()
...
John Emmas reported on mailing list that build with MSVC is failing.
Not sure why bots don't catch it, but this should fix.
2018-09-10 11:05:33 +02:00
Behdad Esfahbod
fda994e1d4
Use enum instead of "static const" in class scope
...
Technically, static const needs an out-of-class definition. Eg:
CXXLD libharfbuzz-subset.la
Undefined symbols for architecture x86_64:
"OT::FeatureVariationRecord::min_size", referenced from:
bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::Record<OT::LangSys>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::IntType<unsigned short, 2u>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[4]: *** [libharfbuzz-subset.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Exited with code 2
2018-09-07 15:02:57 -04:00
Behdad Esfahbod
ebe67137ab
Try fixing bots
2018-09-07 10:46:13 -04:00
Behdad Esfahbod
5f17dbc302
[subset] Fix div-by-zero
2018-09-07 10:24:22 -04:00
Garret Rieger
21bf147054
[subset] Fix hdmx subsetted size calculation.
2018-09-05 19:31:55 -07:00
Behdad Esfahbod
1e6599f596
Fix older compilers re '>>' at nested template declarations
2018-09-05 19:29:42 -07:00
Behdad Esfahbod
a1e5e07c73
[subset] Hook up GSUB/GPOS, but still disabled
...
They are still in the drop list.
2018-09-05 16:24:28 -07:00
Behdad Esfahbod
0d160d5ff5
[subset] Implement subsetting of SingleSubst
2018-09-04 14:20:35 -07:00
Behdad Esfahbod
3f00d0b0df
[subset] Keep glyph set in plan
...
Should remove the vector version at some point...
2018-09-03 18:54:32 -07:00
Behdad Esfahbod
dc50493a8d
[subset] Towards subsetting SingleSubstFormat1
...
Why does subset plan not have a hb_set_t of glyphs?
2018-09-03 18:23:23 -07:00
Behdad Esfahbod
339d3603b9
[subset] Wire up subset() call down to subtables
2018-09-03 17:40:16 -07:00
Behdad Esfahbod
7b2ef551da
Templatize Lookup::sanitize()
2018-09-03 17:16:09 -07:00
Behdad Esfahbod
9c3747c5e5
[subset] More
2018-09-03 16:53:03 -07:00
Behdad Esfahbod
6d618522d6
Templatize GSUBGPOS::sanitize()
2018-09-03 16:41:28 -07:00
Behdad Esfahbod
49c44b58f6
[subset] Fix serialize_subset() calls
...
Ouch.
2018-09-03 16:37:17 -07:00
Behdad Esfahbod
7c9cfa2b40
Add intersects() method to GSUB/GPOS lookups
2018-09-02 19:47:50 -07:00
Behdad Esfahbod
61ce62e554
[subset] Minor
...
Remove Lookup::subset().
2018-09-02 17:00:39 -07:00
Behdad Esfahbod
bfa72a9a72
[subset] Towards GSUB/GPOS subsetting
...
Add subset() call for GSUBGPOS struct and its dependencies.
Not hooked up anywhere.
2018-09-01 18:34:50 -07:00
Behdad Esfahbod
6803ed8674
[serialize] Add reset()
2018-08-31 17:11:08 -07:00
Behdad Esfahbod
e58b190292
[subset] De-templatize hb_subset_context_t
...
We're going to (finally) use virtual methods for hb_serialize_context_t
customization, so don't need to carry a Serializer template variable
around... Simplifies code.
2018-08-31 16:46:35 -07:00
Behdad Esfahbod
22acd424ca
[serialize] Add a couple small methods
2018-08-31 16:41:18 -07:00
Behdad Esfahbod
d1f29908c2
[subset] Add hb_subset_context_t<>
2018-08-31 16:31:00 -07:00
Behdad Esfahbod
aba0a945c5
[subset] Add hb-subset-input.hh and make hb-subset.hh toplevel include
2018-08-31 13:25:19 -07:00
Behdad Esfahbod
18d01eac7f
Minor
2018-08-31 13:00:57 -07:00
Behdad Esfahbod
a23b892fe6
Shuffle
2018-08-29 18:28:39 -07:00
Behdad Esfahbod
93fe0faaee
[subset] Clean up hb_subset_input_t API
2018-08-29 18:24:03 -07:00
Behdad Esfahbod
d237ce7181
[subset] Bail if subsetting a table failed
2018-08-29 18:13:52 -07:00
Behdad Esfahbod
f39166f0c0
[subset] Remove unused hb_subset_profile_t
...
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t. So, for now, keep everything there.
2018-08-29 18:09:55 -07:00
Behdad Esfahbod
2ccc322cf8
[ot-font] Clean up cmap with gid=0
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1145
2018-08-29 16:38:25 -07:00
Behdad Esfahbod
fee0f41c6c
Don't declare extern symbols as inline
...
clang -O3 was completely removing _get_gdef(), causing link
failure when needed from another compilation unit. Surprisingly,
"extern inline" didn't fix it.
2018-08-28 18:27:41 -07:00
Behdad Esfahbod
967741e4c4
Add explicit to hb_auto_t 1param constructors
2018-08-28 18:18:02 -07:00
Behdad Esfahbod
c0a3f38f78
Fix distcheck
2018-08-28 17:22:59 -07:00
Behdad Esfahbod
2dde6c803a
Explicitly pass reference in hb_auto_t constructor
...
Fixes clang bots as well as fuzzer issue.
2018-08-28 11:07:24 -07:00
Behdad Esfahbod
a268068010
[ot-face] Remove tables_t. The face_data_t is what tables_t was
2018-08-26 15:18:46 -07:00
Behdad Esfahbod
3a0b3a29cc
Free up hb-ot-face.hh from includes
...
There might be a better way to do this, but I couldn't find...
2018-08-26 15:11:24 -07:00
Behdad Esfahbod
a84309afc8
[face] Use saved cmap in collect_unicodes() APIs
2018-08-26 09:33:01 -07:00
Behdad Esfahbod
c624e18a24
[OT] Move code around
2018-08-26 09:19:20 -07:00
Behdad Esfahbod
3999094682
[OT] Use relaxed ops for recursing into GSUB/GPOS lookups again
2018-08-26 09:12:25 -07:00
Behdad Esfahbod
d8c57e85d9
[GDEF] Move code around
2018-08-26 09:04:34 -07:00
Behdad Esfahbod
453e0c60b1
Add template keyword
...
I swear I have no idea why this is needed, but it is...
2018-08-26 01:30:52 -07:00
Behdad Esfahbod
c44b0caf0d
Fixup
2018-08-26 01:29:30 -07:00
Behdad Esfahbod
4096fbe487
[ot-face] Port GDEF to unified table accelerator model as well
2018-08-26 01:25:54 -07:00
Behdad Esfahbod
b929100f87
[ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework
2018-08-26 01:15:47 -07:00
Behdad Esfahbod
963413fc54
WIP
2018-08-26 00:47:55 -07:00
Behdad Esfahbod
e6cb938065
[ot-face] Unify accelerators and tables
2018-08-26 00:21:29 -07:00
Behdad Esfahbod
7f8b6fe67d
Minor
2018-08-26 00:07:12 -07:00
Behdad Esfahbod
59bca0d2cb
[ot-font] Rename
2018-08-26 00:06:12 -07:00
Behdad Esfahbod
1c48a7ef06
[ot-font] Cache tables on face, not font
2018-08-25 23:57:16 -07:00
Behdad Esfahbod
71f8893eff
[ot-font] Use init0
2018-08-25 23:27:45 -07:00
Behdad Esfahbod
f36ae6f8a8
[ot-font] Make everything (cmap/metrics) lazy
2018-08-25 23:26:45 -07:00
Behdad Esfahbod
62fc54725a
[ot-font] Fallback vertical advance to UPEM
...
Used to be ascent+descent. Whatever. This is more convenient for
upcoming changes.
2018-08-25 23:15:52 -07:00
Behdad Esfahbod
d950022c8a
Add hb-ot-face.cc/hh
2018-08-25 23:06:37 -07:00
Behdad Esfahbod
dae39c58fb
[face] Introduce character-map API
...
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
2018-08-25 22:44:39 -07:00
Behdad Esfahbod
66384db97c
Minor
2018-08-25 22:39:17 -07:00
Behdad Esfahbod
c77ae40852
Rename hb-*private.hh to hb-*.hh
...
Sorry for the noise, downstream custom builders. Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod
82b12bcadd
[unicode] Add HB_UNICODE_MAX
...
New API:
HB_UNICODE_MAX
2018-08-25 22:07:17 -07:00
Behdad Esfahbod
b09a0336ca
[cmap] More hb_auto_t<>(...)
2018-08-25 22:04:39 -07:00
Behdad Esfahbod
28634db07e
[cmap] Fix skipping gid0 in Format4 collect_unicodes()
2018-08-25 21:23:43 -07:00
Behdad Esfahbod
acce1fa3ea
Use new hb_auto_t<> constructor with Coverage::Iter
2018-08-25 21:15:39 -07:00
Behdad Esfahbod
ddea4d19cf
Add 1-param passthrough constructor to hb_auto_t<>
...
And use.
2018-08-25 21:08:15 -07:00
Behdad Esfahbod
c8cfb702e9
[cmap] Minor
2018-08-25 16:18:00 -07:00
Behdad Esfahbod
1dcf5fb038
[cmap Add hb_subset_collect_variation_unicodes()
...
To be moved to hb-face.h later.
2018-08-25 16:12:18 -07:00
Behdad Esfahbod
4806b3800d
[cmap] Add hb_subset_collect_variation_selectors()
...
To be moved to hb-face later.
2018-08-25 15:58:40 -07:00
Behdad Esfahbod
3336de2479
[cmap] Remove unused code
2018-08-25 15:41:25 -07:00
Behdad Esfahbod
1becabe06c
[cmap] Use bsearch to find subtables
2018-08-25 15:37:56 -07:00
Behdad Esfahbod
02fe03e09a
[cmap] Factor out find_best_subtable
2018-08-25 15:33:05 -07:00
Behdad Esfahbod
b41c43b4e1
Minor
2018-08-25 15:25:03 -07:00
Behdad Esfahbod
7d382fa276
[cmap] Implement collect_unicodes() for Format0/6/10
2018-08-25 09:42:52 -07:00
Behdad Esfahbod
bd0e542525
[cmap] Simplify collect_unicodes()
...
Don't use accelerator (almost). Hooks up Format13 as well.
2018-08-25 09:33:30 -07:00
Behdad Esfahbod
d60c465627
Rename get_all_codepoints() to collect_unicodes()
2018-08-25 08:48:42 -07:00
Behdad Esfahbod
531051b8b9
[ot-font] Return char-not-found if mapped to gid 0
...
OpenType cmap table can use gid=0 to mean "not covered" to produce
more optimized cmap subtables. Return false from get_nominal_glyph()
for those. hb-ft already does this.
2018-08-25 08:44:18 -07:00
Behdad Esfahbod
aadb2a9188
Add face-builder
...
New API:
+hb_face_builder_create
+hb_face_builder_add_table
2018-08-25 08:18:53 -07:00
Behdad Esfahbod
6cac9dc9cc
[blob] Add as_bytes()
2018-08-24 10:29:45 -07:00
Behdad Esfahbod
29a9a08838
[sanitize] Document how sanitize machinery works
2018-08-24 10:24:45 -07:00
Behdad Esfahbod
142ac5a6be
[serialize] Add copy_bytes() and copy_blob()
2018-08-24 10:07:49 -07:00
Behdad Esfahbod
1c6b369324
[ot] Rename hb_ot_layout_t to hb_ot_face_data_t
2018-08-23 11:30:21 -07:00
Emil A Eklund
22defe0965
Add guard around free_static_C_locale
...
Add HB_USE_ATEXIT guard around free_static_C_locale missed by previous
commit.
2018-08-14 18:10:17 -07:00
Emil A Eklund
7112c6413c
Guard free_static function definitions with macro
...
Add HB_USE_ATEXIT macros around free_static function definitions to
avoid unused function compiler warnings/errors.
2018-08-14 14:04:10 -07:00
Behdad Esfahbod
63be5dcdde
1.8.8
2018-08-14 10:59:34 -07:00
Behdad Esfahbod
c9a22fa124
[icu] Pass normalizer instance down as user_data
2018-08-13 17:02:21 -07:00
Behdad Esfahbod
f0ef096b8c
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
2018-08-13 10:30:41 -07:00
Behdad Esfahbod
9bbd1cdf06
[uniscribe] Use lazy loader
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1129
2018-08-12 18:20:53 -07:00
Behdad Esfahbod
2663689936
Another clang bot fix
2018-08-12 18:10:59 -07:00
Behdad Esfahbod
989e71a982
Silence clang
2018-08-12 17:47:59 -07:00
Behdad Esfahbod
6750ec692c
[lazy] Use for C_locale
2018-08-12 17:42:16 -07:00
Behdad Esfahbod
747d2564e6
[lazy] Port more
2018-08-12 17:32:10 -07:00
Behdad Esfahbod
7bd508a0c4
[lazy] Rename free()
2018-08-12 17:19:55 -07:00
Behdad Esfahbod
a3b97db910
[lazy] Port more to it
2018-08-12 17:14:32 -07:00
Behdad Esfahbod
6901090945
[lazy] Make hb_lazy_loader_t<> more usable
2018-08-12 16:59:37 -07:00
Behdad Esfahbod
bb905e9afc
[lazy] Minor
2018-08-12 16:44:44 -07:00
Behdad Esfahbod
3945cd78a9
Minor
2018-08-12 16:33:48 -07:00
Behdad Esfahbod
c21a1b95df
[icu] Use get_relaxed for normalizer access
...
We've had the proper barriers already. No need for more with every access.
2018-08-12 16:30:39 -07:00
Behdad Esfahbod
125fefa2a6
[icu] Fix for breakage after recent change
2018-08-12 16:29:41 -07:00
Behdad Esfahbod
53442be1ed
[lazy] Use for ft_library
2018-08-12 16:20:11 -07:00
Behdad Esfahbod
7a8d480378
[lazy] Add .free()
2018-08-12 16:00:13 -07:00
Behdad Esfahbod
c7ca30a533
[ot/ft] Port font_funcs statis to lazy-loader
2018-08-12 13:46:53 -07:00
Behdad Esfahbod
cb3fc3685c
[ucdn/glib/icu] Port unicode_funcs statics to lazy-loader
2018-08-12 13:39:01 -07:00
Behdad Esfahbod
1b6b481262
[lazy] Allow calling fini() multiple times
2018-08-12 13:16:40 -07:00
Behdad Esfahbod
918ad9f5d9
[lazy] More
2018-08-12 13:12:29 -07:00
Behdad Esfahbod
5abdf5eeba
[lazy] More shuffle
2018-08-12 12:48:44 -07:00
Behdad Esfahbod
5d9863be6e
Minor
2018-08-12 12:27:47 -07:00
Behdad Esfahbod
f9a3eab810
Add explicit_operator
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1127
2018-08-12 12:21:56 -07:00
Behdad Esfahbod
470acb6c32
Rename
2018-08-12 12:13:36 -07:00
Martin Hosken
39607dc98e
Support _ in feature ids
2018-08-11 16:55:16 -07:00
Behdad Esfahbod
652cd45c65
[coretext] Another try
2018-08-09 01:02:02 -07:00
Behdad Esfahbod
3f3585ca14
Fix coretext build (hopefully)
2018-08-09 00:58:17 -07:00
Behdad Esfahbod
aa3b6017ed
Revert "[iter] Make operator bool explicit"
...
This reverts commit 66920a6bac
.
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
2018-08-09 00:56:28 -07:00
Behdad Esfahbod
e1a2354220
[atomic] More
2018-08-09 00:53:25 -07:00
Behdad Esfahbod
f1f4b45ac3
Fix lazy_loader fini()
...
Was creating object even if wasn't there.
2018-08-09 00:28:40 -07:00
Behdad Esfahbod
1f7380944d
[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".
2018-08-09 00:27:01 -07:00
Behdad Esfahbod
6e42f4c53f
[atomic] Remove hb_atomic_int_impl_t now that it's always int
2018-08-08 22:51:35 -07:00
Behdad Esfahbod
1227a9e5a5
[atomic] Unify typedef
...
Removes volatile from fallback implementation. That was handwavy
anyway.
2018-08-08 22:45:49 -07:00
Behdad Esfahbod
5cd1888c9d
[atomic] Change Mac atomic int type to int
...
If ever int is not 32bit, we'll fix this...
2018-08-08 22:43:53 -07:00
Behdad Esfahbod
e1de86eac1
[atomic] Change Windows atomic int type to int
2018-08-08 22:42:33 -07:00
Behdad Esfahbod
aee2d10b2b
[atomic] Change Solaris atomic int to signed
2018-08-08 22:40:10 -07:00
Behdad Esfahbod
b6fdcf4f8b
1.8.7
2018-08-08 22:01:38 -07:00
Behdad Esfahbod
51ffc3e65a
Fix previous commit to use atomic operations
2018-08-08 22:01:38 -07:00
Behdad Esfahbod
883957688c
Fix assertion failure
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1476334
2018-08-08 21:42:18 -07:00
Behdad Esfahbod
e49a38b20e
1.8.6
2018-08-07 09:55:42 -07:00
Behdad Esfahbod
b0ff79acd8
Add +hb_font_get_glyph_advances_for_direction
...
New API:
+hb_font_get_glyph_advances_for_direction
2018-08-07 09:52:06 -07:00
Behdad Esfahbod
28e2f467e1
Actually add hb_font_get_glyph_[hv]_advances
...
New API:
+hb_font_get_glyph_h_advances
+hb_font_get_glyph_v_advances
2018-08-07 09:47:00 -07:00
Behdad Esfahbod
996775191a
Minor
2018-08-07 09:44:36 -07:00
Behdad Esfahbod
3d7c555a19
Remove get_advances_nil and alias it to get_advances_default
2018-08-07 09:37:52 -07:00
Behdad Esfahbod
66920a6bac
[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
2018-08-06 15:32:13 -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
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
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
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
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
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
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