Commit Graph

5321 Commits

Author SHA1 Message Date
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