src


Log

Author Commit Date CI Message
Behdad Esfahbod affacf2f 2014-12-28T16:20:31 [ft] Open blob in READONLY mode HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly useless now.
Behdad Esfahbod 395b3590 2014-12-28T16:03:26 Avoid accessing layout tables at face destruction "Fixes" https://bugs.freedesktop.org/show_bug.cgi?id=86300 Based on discussion someone else who had a similar issue, most probably the user is releasing FT_Face before destructing hb_face_t / hb_font_t. While that's a client bug, and while we can (and should) use FreeType refcounting to help avoid that, it happens that we were accessing the table when we didn't really have to. Avoid that.
Behdad Esfahbod 7d5e7613 2014-12-18T18:22:21 Fail blob creation if length overflows or is too large Fail if blob start plus length overflows; or if blob length is greater than 2GB. It takes a while for fonts to get to that size. In the mean time, it protects against bugs like this: http://www.icu-project.org/trac/ticket/11450 Also avoids some weird issues with 32bit vs 64bit systems as we accept length as unsigned int. As such, a length of -1 will cause overflow on 32bit machines, but happily accepted on a 64bit machine. Avoid that.
Behdad Esfahbod d5a50520 2014-12-18T18:09:41 Assert that blob length doesn't overflow address. This will crash now, if blob was created with wrong length. Check for that coming next commit.
Behdad Esfahbod 093c520d 2014-12-12T21:07:53 [otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
Behdad Esfahbod 9df0a520 2014-12-12T20:54:28 [otlayout] Avoid invalid access with Context format 3
Behdad Esfahbod 295ef1dd 2014-12-12T20:43:18 [ot] Debug get_coverage
Behdad Esfahbod 00f6a8e3 2014-12-12T20:36:49 [ot] Print format in dispatch trace
Behdad Esfahbod 5c7d6f02 2014-12-12T20:28:49 Minor
Behdad Esfahbod 153beebb 2014-12-12T19:46:09 [ot] Make sure all toplevel tables have tableTag
Behdad Esfahbod 282b13f9 2014-12-12T19:32:46 [sanitize] Improve debug output some more
Behdad Esfahbod 0766ee1f 2014-12-12T18:23:20 [sanitize] Improve debug output
Behdad Esfahbod e6f80fa1 2014-12-10T12:05:24 [indic] Allow ZWJ/ZWNJ before SM In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage or stop ligation of the candrabindu. This is clearly specified in the Unicode section on Oriya. Allow it there. Note that Uniscribe doesn't allow this. Micro tests added using Noto Sans Oriya draft. No changes in numbers. Currently at: BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
Behdad Esfahbod fde3e4a4 2014-10-29T11:23:08 In hb_ot_collect_glyphs(), don't recurse to a lookup more than once Otherwise, we might process a lookup thousands of times, with no benefit. This pathological case was hit by Noto Nastaliq Urdu Draft in Firefox's code to determine whether space glyph is involved in any GSUB/GPOS rules. A test page is at http://behdad.org/urdu See: https://bugzilla.mozilla.org/show_bug.cgi?id=1090869
Behdad Esfahbod 5a5640d8 2014-10-14T21:26:13 Move code around
Behdad Esfahbod 666b42f7 2014-10-14T21:24:59 Move macros around Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
Behdad Esfahbod 5c87120b 2014-10-14T20:07:31 Fix misc warnings Fixes https://github.com/behdad/harfbuzz/pull/51
Behdad Esfahbod 8afaf096 2014-10-02T16:40:41 [ft] Add NO_HINTING in a couple other places
Behdad Esfahbod 5de04073 2014-10-01T18:18:25 Help clang with gcov
Behdad Esfahbod c0b82ba3 2014-10-01T14:24:07 Create ragel-generated files in srcdir
Behdad Esfahbod 79bbb10b 2014-10-01T13:33:21 Clean ragel-generated headers in maintainercleanfiles
Behdad Esfahbod 8971cac8 2014-10-01T12:41:03 Don't use tmp files in Makefile Useful for code-coverage generation of the ragel-generated files as they will now contain the correct .hh filename in them.
Behdad Esfahbod 22723186 2014-10-01T11:56:07 check-static-inits: Filter out zero-length sections When compiling with -O0, zero-sized constructors were showing up and confusing the test.
Behdad Esfahbod b695a3dc 2014-10-01T11:55:14 check-static-inits: check for static finalizers
Behdad Esfahbod 250398b1 2014-10-01T11:28:01 Hide other bubble-sort
Behdad Esfahbod c1e87442 2014-10-01T11:07:08 Hide bubble-sort!
Behdad Esfahbod 15685299 2014-09-25T17:45:49 [ot-font] Add hb_ot_face_cmap_accelerator_t
Behdad Esfahbod d088ccaf 2014-09-25T17:26:56 [ot-font] Minor
Behdad Esfahbod d7c160a1 2014-09-25T17:15:35 [ot-font] Handle missing vertical metrics tables
Behdad Esfahbod be1cca27 2014-09-25T16:53:24 [ot-font] Add metrics_accel_t
Behdad Esfahbod d41b809e 2014-09-25T13:04:08 [ot-font] Start adding vertical support
Behdad Esfahbod 22f0de50 2014-08-25T12:54:57 Fix build
Behdad Esfahbod d457e3f0 2014-08-25T12:31:19 [arabic] Don't #include __FILE__ Fine! https://code.google.com/p/chromium/issues/detail?id=406957
Behdad Esfahbod 9ceb673d 2014-08-25T11:48:12 [arabic] Allow disabling win1256 fallback code By defining HB_NO_WIN1256.
Behdad Esfahbod 8a931950 2014-08-22T12:06:57 [ot] Prefer Windows platform cmap tables / accept all Unicode encodingIDs Some fonts on the Mac ship with (0,1).
Behdad Esfahbod 270971a0 2014-08-15T14:28:04 [win32] Avoid preprocessor warnings re macros
Behdad Esfahbod 8c6bd34d 2014-08-14T13:33:37 Fix check-symbols on OS X
Behdad Esfahbod 522b1cc5 2014-08-14T13:29:30 [coretext] Hide feature_mappings
Behdad Esfahbod 0d2c2f23 2014-08-14T13:25:55 Simplify hb-object
Behdad Esfahbod 9d861b81 2014-08-14T13:15:21 Really fix clang build this time
Behdad Esfahbod 272226f2 2014-08-14T13:11:33 Revert "Fix build on clang after previous commit" This reverts commit 9c80cbc87f23040a334e30c750f64523d9ef10c8.
Behdad Esfahbod 9c80cbc8 2014-08-14T13:09:52 Fix build on clang after previous commit
Behdad Esfahbod a5a27073 2014-08-14T13:05:36 Rewrite this==NULL checks to avoid undefined behavior Fixes https://code.google.com/p/chromium/issues/detail?id=403594
Behdad Esfahbod cc3b2d43 2014-08-14T12:59:16 Remove this==NULL check from face->reference_table() Not supposed to happen, and apparently this is undefined in C++. https://code.google.com/p/chromium/issues/detail?id=403594
Behdad Esfahbod cd7ea4f7 2014-08-14T12:57:02 Make hb_object_t members private In preparation for fixing: https://code.google.com/p/chromium/issues/detail?id=403594
Behdad Esfahbod 20076cc4 2014-08-12T19:26:35 [coretext] Add version guards for kCTLanguageAttributeName
Behdad Esfahbod 1b3011c2 2014-08-12T19:17:19 [coretext] Pass buffer language to CoreText
Behdad Esfahbod 3eb6a4db 2014-08-12T19:10:33 [coretext] Minor
Behdad Esfahbod 08acfe0d 2014-08-12T18:57:08 [hb-coretext] Fix cluster order of notdef runs in RTL text
Behdad Esfahbod 30eed75d 2014-08-12T17:15:09 [shape-plan] Fix typo! The only effect is, if shaper_list was not NULL and no shaper was found, we now don't insert anything into cache and return earlier.
Behdad Esfahbod dc9aba6f 2014-08-12T17:14:36 [shape-plan] Better debug messages
Behdad Esfahbod e956c65b 2014-08-12T17:03:27 [shape-plan] Simplify macro
Behdad Esfahbod 29e25550 2014-08-12T17:02:59 Fix gcc warning
Behdad Esfahbod 8d5eebc0 2014-08-12T16:50:22 [shape-plan] Fix shape-plan caching with more than one requested shaper Wasn't breaking out of loop, ouch! http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
Behdad Esfahbod bc3d0dc6 2014-08-12T16:49:18 [shape-plan] Add debug tracing
Behdad Esfahbod 81b8d977 2014-08-12T15:49:47 [coretext] Fix buffer resizing Was very broken. Now fixed and tested.
Behdad Esfahbod c3e924fb 2014-08-12T14:25:11 [coretext] Rewind scratch-allocated arrays when not needed anymore
Behdad Esfahbod 8fd4d70b 2014-08-12T13:12:31 [wince] Two more Windows CE fixes Report has it that it builds (and works) now: https://codereview.qt-project.org/#/c/92087/
Behdad Esfahbod fd0001d7 2014-08-12T10:32:41 [coretext] Compare CGFont and PS name, if CTFont didn't match See comments. Fixes vertical text. CoreText backend is in very good shape now! Also see: 5a0eed3b50629be4826e4e9428f2c3255195395d 25f4fb9b56bb3f8bec821571c78f8829e40daa54 Fixes http://github.com/behdad/harfbuzz/pull/36
Behdad Esfahbod 5a0eed3b 2014-08-11T23:47:16 [coretext] Implement vertical shaping Currently doesn't work though, we detect font fallback. Apparently matching on ct_font is not safe for this. Looks like commit 25f4fb9b56bb3f8bec821571c78f8829e40daa54 wasn't enough after all.
Behdad Esfahbod 1b55077f 2014-08-11T20:45:12 [coretext] Remove unnecessary alt_size Wasn't needed after a6b8dc87421de33746b0b14d86d2d1532aec02af.
Behdad Esfahbod 10b1104d 2014-08-11T20:02:45 [coretext] Use CFRunStatus Assert that all runs had expected direction, and take hint for non-monotone clusters.
Behdad Esfahbod fd1a6aa8 2014-08-11T20:01:37 [coretext] Minor
Behdad Esfahbod 130856c7 2014-08-11T19:16:26 [coretext] Remove debug printf!
Behdad Esfahbod b5fbc3b8 2014-08-11T18:40:01 API: Do not clear buffer-flags in hb_buffer_clear_contents() After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't need to set flags for different pieces of text. The flags now are something the client sets up once, depending on how it actually uses the buffer. As such, don't clear it in clear_contents(). Tests updated.
Behdad Esfahbod 104484ce 2014-08-11T18:23:43 Minor
Behdad Esfahbod 4acce77d 2014-08-11T17:46:50 [coretext] Pass buffer direction to CoreText Have to use a CTTypesetter for this.
Behdad Esfahbod 5ec45dd3 2014-08-11T17:46:12 [coretext] Minor It's hard to handle all possible NULL returns from CoreText. Add one more...
Behdad Esfahbod 624a299b 2014-08-11T15:29:18 [coretext] Attach marks to base clusters Fixes https://githu.com/behdad/harfbuzz/issues/49 to the extent that it can be fixed.
Behdad Esfahbod 3c41ccb5 2014-08-11T15:11:59 [coretext] Use input clusters Before, this shaper was returning UTF-16 cluster indices instead of returning whatever cluster values the user had had set up in the buffer. Ouch!
Behdad Esfahbod a6b8dc87 2014-08-11T15:08:19 [coretext] Fix buffer resize handling We can't really resize buffer and continue in this shaper as we are using the scratch buffer for string_ref and log_cluster. Restructure shaper to retry from (almost) scratch.
Behdad Esfahbod 9b3c60c8 2014-08-11T13:25:43 [coretext] Always compute log_clusters To be used soon.
Behdad Esfahbod 15c633dd 2014-08-11T13:42:42 Minor
Behdad Esfahbod 9ce067c7 2014-08-11T02:04:38 [coretext] Simplify cluster mapping
Behdad Esfahbod 49f7fb63 2014-08-10T19:19:38 [coretext] Minor
Behdad Esfahbod 25f4fb9b 2014-08-10T19:05:25 [coretext] Fix fallback detection Fixes http://github.com/behdad/harfbuzz/pull/36
Behdad Esfahbod 77a7a53a 2014-08-10T18:59:47 [coretext] Fix last range Test with: hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:] --shaper=coretext
Behdad Esfahbod c2b151d9 2014-08-10T18:52:07 Fix hb_in_range() for types smaller than int As exercised by hb-coretext .notdef code.
Behdad Esfahbod 26a963b9 2014-08-10T18:04:50 [wince] Try to fix some stuff on Windows CE Based on errors seen here: http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz Fully untested.
Behdad Esfahbod 92aeee3f 2014-08-10T17:42:19 Minor
Behdad Esfahbod b9993d8d 2014-08-10T17:40:24 [coretext] Fix assert on Yosemite Apparently those functions documented as sometimes returning NULL actually exercise that right in OS X 10.10 Yosemite. The scratch was too small for that. I *think* I fixed it, but haven't tested as I don't have Yosemite.
Behdad Esfahbod 087733dd 2014-04-18T11:21:08 [coretext] Use CGFont as face_data
Behdad Esfahbod d277c3d7 2014-08-07T15:38:52 [arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type Fixes https://bugs.freedesktop.org/show_bug.cgi?id=82306
Behdad Esfahbod 38fb30d7 2014-08-06T13:34:49 Use atexit() only if it's safe to call from shared library Apparently they are not (advertised as?) safe on BSD systems. We ignore the case of static libraries. Whitelisted on glibc, Android, and MSVC / mingw. https://bugs.freedesktop.org/show_bug.cgi?id=82246
Behdad Esfahbod d5e61470 2014-08-05T14:19:01 [arabic] Fix fallback shaping regression Was broken in 615d00ea252739da57edbd980ff27e573. Fixes https://github.com/behdad/harfbuzz/pull/48 Micro-test added.
Behdad Esfahbod d7c850f8 2014-08-02T17:46:38 [uniscribe] Minor
Behdad Esfahbod 8f3eebf7 2014-08-02T17:18:46 Make sure gsubgpos buffer vars are available during fallback_position Add buffer var allocation asserts to a few key places.
Behdad Esfahbod 2053f369 2014-08-02T16:31:16 Disable 'liga' for vertical text The reason we turned it on is because Kazuraki uses it. But that's not reason enough. Until the OpenType spec gets its act together re adding design-direction to lookups, this is better user experience.
Behdad Esfahbod 763e5466 2014-08-02T16:17:44 Make it easier to use HB_BUFFER_FLAG_BOT/EOT Previously, we expected users to provide BOT/EOT flags when the text *segment* was at paragraph boundaries. This meant that for clients that provide full paragraph to HarfBuzz (eg. Pango), they had code like this: hb_buffer_set_flags (hb_buffer, (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) | (item_offset + item_length == paragraph_length ? HB_BUFFER_FLAG_EOT : 0)); hb_buffer_add_utf8 (hb_buffer, paragraph_text, paragraph_length, item_offset, item_length); After this change such clients can simply say: hb_buffer_set_flags (hb_buffer, HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT); hb_buffer_add_utf8 (hb_buffer, paragraph_text, paragraph_length, item_offset, item_length); Ie, HarfBuzz itself checks whether the segment is at the beginning/end of the paragraph. Clients that only pass item-at-a-time to HarfBuzz continue not setting any flags whatsoever. Another way to put it is: if there's pre-context text in the buffer, HarfBuzz ignores the BOT flag. If there's post-context, it ignores EOT flag.
Behdad Esfahbod 0a5ae933 2014-08-02T15:00:34 Merge branch 'win1256'
Behdad Esfahbod 6ab6be32 2014-08-02T14:58:38 [arabic/win1256] Remove unused MultipleSubst macros
Behdad Esfahbod abfa4252 2014-08-01T19:05:33 [arabic/win1256] Really fix lam-alef this time https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c26 https://github.com/behdad/harfbuzz/commit/b276e897d17519a2c28f79d024904ac2bdd86bcf#commitcomment-7243499
Behdad Esfahbod 55977f2a 2014-08-01T16:14:33 [arabic/win1256] Hook up lamMedi lookup Restructure lookup array to accommodate. https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
Behdad Esfahbod e839e252 2014-08-01T16:09:31 [arabic/win1256] Fix TEH MARBUTA final form https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
Behdad Esfahbod a2de1932 2014-07-31T18:21:05 [arabic/win1256] Fix shaping of JEEM, HAH, and KHAH https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c16
Behdad Esfahbod 1789ccb1 2014-07-31T11:04:00 [arabic/win1256] Remove GCC'ism The table can now compile independently too. If we cannot make it work on MSVC, we can always generate the data and distribute it. The code now compiles cleanly with: gcc -c -xc -std=c99 -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh g++ -c -xc -std=c++1x -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh See: https://github.com/behdad/harfbuzz/commit/a97f537cec209649302899975d76ca2b2661da7a#commitcomment-7218736
Behdad Esfahbod f28b1c82 2014-07-30T02:15:44 [arabic] Implement Windows-1256 private shaping Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered bad https://bugzilla.mozilla.org/show_bug.cgi?id=1045139 This is only enabled on Windows platforms, and requires support from Uniscribe to work. But for clients that do hook up to Uniscribe, this fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans Serif". The code and table together have just less than a 1kb footprint when enabled. UNTESTED. I might even have broken regular Arabic fallback shaping.
Behdad Esfahbod ac53443f 2014-07-31T18:51:37 [hangul] Don't apply 'calt' See comments. Micro-test added.
Behdad Esfahbod 88911e8c 2014-07-29T19:47:26 Minor
Behdad Esfahbod 9e834e29 2014-07-26T20:34:01 [hebrew] Zero mark advance by GDEF late Seems to be what Uniscribe does. At this point I think it's work checking our default... Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple substitution with SBL Hebrew https://bugs.freedesktop.org/show_bug.cgi?id=76767 Micro-test added.