Closed Bug 1251203 Opened 5 years ago Closed 4 years ago

update harfbuzz to upstream release 1.2.6


(Core :: Layout: Text and Fonts, defect)

Not set



Tracking Status
firefox48 --- fixed


(Reporter: shanshandehongxing, Assigned: jfkthame)




(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0
Build ID: 20160210153822

Steps to reproduce:

Overview of changes leading to 1.2.3
Thursday, February 25, 2016

- Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic,
  due to bug in glyph class of ASCII double-quote character.  This should
  address "regression" introduced in 1.2.0 when we switched mark zeroing
  in most shapers from BY_UNICODE_LATE to BY_GDEF_LATE.
  This fourth release in a week should finally stablize things...

- hb-ot-font's get_glyph() implementation saw some optimizations.  Though,
  might be really hard to measure in real-world situations.

- Also, two rather small API changes:

We now disable some time-consuming internal bookkeeping if built with NDEBUG
defined.  This is a first time that we use NDEBUG to disable debug code.  If
there exist production systems that do NOT want to enable NDEBUG, please let
me know and I'll add HB_NDEBUG.

Added get_nominal_glyph() and get_variation_glyph() instead of get_glyph()

New API:
- hb_font_get_nominal_glyph_func_t
- hb_font_get_variation_glyph_func_t
- hb_font_funcs_set_nominal_glyph_func()
- hb_font_funcs_set_variation_glyph_func()
- hb_font_get_nominal_glyph()
- hb_font_get_variation_glyph()

Deprecated API:
- hb_font_get_glyph_func_t
- hb_font_funcs_set_glyph_func()

Clients that implement their own font-funcs are encouraged to replace
their get_glyph() implementation with a get_nominal_glyph() and
get_variation_glyph() pair.  The variation version can assume that
variation_selector argument is not zero.  Old (deprecated) functions
will continue working indefinitely using internal gymnastics; it is
just more efficient to use the new functions.
Depends on: 1249861
Note that we already handle the problem with TNR Italic within Gecko code, so there's no urgency for us to take that harfbuzz fix.

(When we do take a new release, we should be able to remove our equivalent workaround; we should also switch to the new get_nominal_glyph() and get_variation_glyph() APIs instead of get_glyph().)
Ever confirmed: true
And now, version 1.2.5 is now released. (Note that 1.2.3 and 1.2.4 had a bug that broke mark filter sets; see recent messages on the hb mail-list.)
Summary: update harfbuzz to upstream release 1.2.3 → update harfbuzz to upstream release 1.2.5
Version 1.2.6 is now released.
Summary: update harfbuzz to upstream release 1.2.5 → update harfbuzz to upstream release 1.2.6
Just a routine update. Once this is landed, we can simplify our interface code a bit using the new get_glyph APIs, but I'll do that as a followup.
Attachment #8740414 - Flags: review?(jmuizelaar)
Assignee: nobody → jfkthame
Blocks: 1263956
Try run, just to check the update doesn't break our reftests:
Attachment #8740414 - Flags: review?(jmuizelaar) → review+
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Blocks: 1269343
You need to log in before you can comment on or make changes to this bug.