src


Log

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