|
00cd00e6
|
2018-09-30T05:34:30
|
|
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 >*/
^ ~~~~~~~~~~
|
|
8a31e406
|
2018-09-30T05:27:39
|
|
[font] Make *_advance() fallback to *_advances
And remove redundant implementations.
|
|
bd07d287
|
2018-09-30T03:54:40
|
|
Use buffer scratch_flags to remember if we had any joiners
|
|
ba0f0f15
|
2018-09-30T03:49:52
|
|
Document setlocale() threadsafety issue
"Fixes" //github.com/harfbuzz/harfbuzz/issues/1191
|
|
b1e07e1e
|
2018-09-30T05:43:22
|
|
[indic/khmer] Remove use of global constructors
Alternative woul have been to resurrect F_COMBINE that I removed in
70136a78cb9eda244767f8e8a3d30d0f3c569d01
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.
|
|
9b0b40b3
|
2018-09-28T11:16:18
|
|
Fix fallback kerning to check for current glyph's mask
|
|
f4072e8c
|
2018-09-28T10:14:23
|
|
[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.
|
|
0d18ec54
|
2018-09-28T10:00:07
|
|
[morx] unsafe-to-break in Insertion
Makes MORX-29, MORX-30, MORX-31 pass.
|
|
b435df3a
|
2018-09-28T09:13:14
|
|
More atomic tuneup
|
|
d2542cd2
|
2018-09-27T17:23:24
|
|
More atomic fixup
|
|
3ee96984
|
2018-09-27T17:20:26
|
|
Fixup atomics from recent change
|
|
30546870
|
2018-09-27T16:54:23
|
|
[cache] Use atomic writes in clear()
To help TSan.
|
|
9e9a36ee
|
2018-09-27T16:33:49
|
|
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 "/".
|
|
662f7d7e
|
2018-09-26T18:42:37
|
|
[arabic] Do the joiner-flipping only for rlig feature
See comment.
|
|
7f30629c
|
2018-09-26T16:40:23
|
|
[ft] Make TSan happy
|
|
ec743fce
|
2018-09-26T16:37:18
|
|
Add more atomic intrinsics
|
|
90a0f9fa
|
2018-09-26T15:03:07
|
|
Make TSan happy with make_immutable()
|
|
824111d4
|
2018-09-25T12:47:37
|
|
Fix iOS build
Fixes https://github.com/harfbuzz/harfbuzz/pull/1179
|
|
6c0e7eb6
|
2018-09-24T19:07:23
|
|
Minor
|
|
d748dc76
|
2018-09-24T18:30:50
|
|
More iter inits
|
|
d9867497
|
2018-09-24T18:11:59
|
|
Minor
|
|
70136a78
|
2018-09-24T18:03:34
|
|
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..
|
|
f048ead8
|
2018-09-24T18:01:53
|
|
Some more
|
|
1676f608
|
2018-09-24T17:55:03
|
|
Minor refactoring
|
|
48398073
|
2018-09-24T13:11:34
|
|
[check-static-inits.sh] Allow some if ubsan is in effect
|
|
e45ba31d
|
2018-09-24T13:04:48
|
|
[check-symbols.sh] Allow weak objects "V"
ubsan generates these.
|
|
2d93148a
|
2018-09-24T11:52:22
|
|
Ignore weak symbols in check-symbols.sh
Some clang versions leave a std::round(float) weak symbol around...
|
|
55bae682
|
2018-09-24T10:43:06
|
|
[docs] A few improvements
If we wrote just this much every day...
|
|
57fa2c23
|
2018-09-24T09:57:52
|
|
Readjust Hebrew composition again
|
|
7f335390
|
2018-09-24T09:56:18
|
|
Revert change that would decompose text if GPOS mark feature is available
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
|
|
a6f4b2f7
|
2018-09-24T09:54:37
|
|
Fix normalization
https://github.com/harfbuzz/harfbuzz/commit/62d1e0852a5549a1b510ad46a4b89f12730bb708#commitcomment-30613091
|
|
3583fb03
|
2018-09-23T22:33:38
|
|
Simplify ZWJ-skipping a bit
Towards disabling ZWJ-skipping in certain GPOS contexts.
Part of https://github.com/flutter/flutter/issues/16886
|
|
9516cbd3
|
2018-09-23T22:00:34
|
|
Reinit skippy iters when auto_zwj / auto_zwnj change
Ouch. How did we not hit this bug before...
|
|
62d1e085
|
2018-09-23T21:32:18
|
|
Prefer decomposed form if font has GPOS mark feature
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
|
|
d7f21777
|
2018-09-23T19:12:52
|
|
[ot-font] Fix leak
Fixes https://github.com/harfbuzz/harfbuzz/issues/1171
I'm glad we have leak-detector bots now.
|
|
24dd6c1a
|
2018-09-23T18:08:30
|
|
src/hb-blob.cc: Fix mmap functionality with UWP.
|
|
5fd8bce9
|
2018-09-19T22:34:09
|
|
[morx] Fix mark_set check
|
|
0739b281
|
2018-09-19T17:32:21
|
|
[aat] Minor
|
|
7671cb9b
|
2018-09-19T17:10:26
|
|
[coretext] Minor
|
|
dc8ed452
|
2018-09-19T16:46:41
|
|
[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.
|
|
3bccd621
|
2018-09-19T16:24:34
|
|
[morx] Implement horiz-only/vert-only subtables
|
|
041a08de
|
2018-09-19T16:02:56
|
|
[morx] Improve buffer position in Insertion w DontAdvance and wo
Just speculation. Needs tests to determine which is correct behavior.
|
|
388ab916
|
2018-09-17T19:29:34
|
|
[morx] Implement InsertionChain
|
|
d8d1e7df
|
2018-09-17T11:09:51
|
|
Don't enforce a native direction for Old Hungarian
|
|
606bf574
|
2018-09-16T19:33:48
|
|
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 94bfea0ce6a7b4d5641c198d50751748a353df11.
This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
|
|
cbcaba6f
|
2018-09-16T19:25:19
|
|
One more bot fix
|
|
89dd4b95
|
2018-09-16T18:11:46
|
|
Fix bots
"Unused private member" warning turned error. ugh.
|
|
4e626278
|
2018-09-16T18:09:36
|
|
Enforce single-param static_assert() only
So we don't accidentally break it again.
|
|
f1a86e1e
|
2018-09-16T18:01:32
|
|
Remove unused try
|
|
ebd50b3c
|
2018-09-16T17:57:12
|
|
Fix static_assert
|
|
10642b3f
|
2018-09-15T19:43:33
|
|
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.
|
|
9ff76c60
|
2018-09-15T18:31:14
|
|
[morx] Respect default feature settings
Does NOT apply user-selected features. But at least now enables
correct subtables.
|
|
2f97da6e
|
2018-09-15T14:51:50
|
|
[aat] Change version field
|
|
29c2bd17
|
2018-09-15T14:47:18
|
|
[morx] Add stub for InsertionChain
|
|
f8ccb545
|
2018-09-14T18:59:53
|
|
[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.
|
|
01b9148d
|
2018-09-14T14:23:09
|
|
[unicode] Move Fitzpatrick hack from ot-layout into unicode.hh
|
|
6ebbf514
|
2018-09-14T12:15:53
|
|
Minor
|
|
957dbed3
|
2018-09-14T12:14:42
|
|
Fix builds
|
|
4653e6cf
|
2018-09-14T11:31:33
|
|
[aat] Add enums for pre-defined state and classes
Not sure how I didn't add before...
|
|
67449c39
|
2018-09-14T10:58:00
|
|
Don't dereference offset before check_struct()
|
|
ca746f26
|
2018-09-13T20:35:21
|
|
[dfont] Also check dataLen range in sanitize
Just to disagree with myself re being done with this code...
|
|
3789c557
|
2018-09-13T20:30:04
|
|
[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!
|
|
effc7ced
|
2018-09-13T20:21:54
|
|
Rename HeadlessArrayOf::len to lenP1
So it doesn't accidentally match our templates, etc.
|
|
180a88a9
|
2018-09-13T19:19:57
|
|
[dfont] Some more
|
|
0ab0f1e5
|
2018-09-13T19:13:01
|
|
[dfont] Push methods further down
|
|
8c9bdcc1
|
2018-09-13T19:08:22
|
|
[dfont] Minor
|
|
4479d3a2
|
2018-09-13T19:05:59
|
|
[dfon]t Sanitize OpenTypeFontFace
|
|
3fba4190
|
2018-09-13T18:49:16
|
|
[dfont] Minor
|
|
bf852f0e
|
2018-09-13T18:47:53
|
|
[dfont] Make test pass
Offset 0 is not null in this context.
|
|
29faebe9
|
2018-09-13T18:45:35
|
|
Allow Offset<>'s that have no 0==null
|
|
82f4d776
|
2018-09-13T18:27:20
|
|
[dfont] Minor
|
|
07e0ca93
|
2018-09-13T17:39:09
|
|
[bytes] Rename content to arrayZ
|
|
dbb764dc
|
2018-09-13T16:49:26
|
|
[dfont] Clean up sanitize()
I don't think I broke anything. Fuzzers will let me know..
|
|
361fc268
|
2018-09-13T16:47:33
|
|
Fix OffsetTo::sanitize() after reshuffling
|
|
4c6b0fb5
|
2018-09-13T16:39:30
|
|
OffsetTo::sanitize() Add version with three user_data
|
|
a73bea69
|
2018-09-13T16:31:31
|
|
OffsetTo::sanitize() more shuffling
|
|
b482e523
|
2018-09-13T16:29:49
|
|
OffsetTo::sanitize() reshuffling
|
|
bd75fd45
|
2018-09-11T18:12:26
|
|
[dfont] Some renaming, plus add link to reference doc
|
|
4134ec13
|
2018-09-11T17:56:03
|
|
[dfont] Sanitize only sfnt resources as OpenTypeFontFile
|
|
6b5e4d07
|
2018-09-11T17:26:24
|
|
[dfont] Minor
|
|
d5c50927
|
2018-09-11T17:18:21
|
|
[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.
|
|
9479ffef
|
2018-09-11T16:41:26
|
|
[dfont] Re-enable and fix offset handling
Fixes https://github.com/harfbuzz/harfbuzz/pull/1085
|
|
a1814e2b
|
2018-09-11T14:45:23
|
|
Whitespace
|
|
383060cc
|
2018-09-11T14:41:19
|
|
[ft] Invalidate advance cache if font size changed
|
|
54998bef
|
2018-09-11T14:35:26
|
|
[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
|
|
047a84c5
|
2018-09-11T14:05:16
|
|
[ft] Towards caching slow get_h_advance results
Related to https://github.com/harfbuzz/harfbuzz/pull/1082
|
|
237f2153
|
2018-09-11T13:05:47
|
|
[ft] Add advances() callback
|
|
cbea7d49
|
2018-09-11T12:56:17
|
|
[ot-font] Rename
|
|
d8a67dac
|
2018-09-11T12:55:54
|
|
[ot-font] Add advances() callbacks
|
|
0ea42e11
|
2018-09-11T12:22:42
|
|
[cache] Minor
|
|
0f520ada
|
2018-09-11T12:02:34
|
|
Revert "Remove unused hb_cache_t"
This reverts commit 473b17af4d421f4ce7ac18c769731bb2aa4088f8.
Updates to recent changes.
|
|
cfdea884
|
2018-09-11T10:57:48
|
|
[random] Switch to 32bit RNG
|
|
08260c70
|
2018-09-11T10:51:19
|
|
[random] Shuffle
|
|
71c9f84e
|
2018-09-10T22:37:19
|
|
Make --features rand=1 available to the user
Use rand=255 to mean "randomize".
Part of https://github.com/harfbuzz/harfbuzz/pull/803
|
|
cc1c4fdf
|
2018-09-10T16:36:05
|
|
Respect user's wish if they set rand feature manually
Except if the set it to 1, which would mean "randomize"... Ugly.
|
|
80de4bcd
|
2018-09-10T16:24:52
|
|
Minor clean up of 'rand' patchset
|
|
b545e27d
|
2018-02-23T12:22:32
|
|
Don't seed the RNG from the contents of the buffer
|
|
f05df643
|
2018-01-26T21:36:15
|
|
Allow requesting a specific glyph for 'rand'
Randomization only happens by default. If the user specifies a value for
'rand', that value is respected.
|
|
c2a75e07
|
2018-01-25T14:22:03
|
|
Implement 'rand'
|
|
96471fe8
|
2018-09-11T01:39:23
|
|
[uniscribe] Fix build
|