author | Jonathan Kew <jkew@mozilla.com> |
Thu, 12 Oct 2017 14:25:42 +0100 | |
changeset 385856 | 44caf00c1796c44017bc60767c57f7fb42662e59 |
parent 385855 | e09ffeb018f88003cbedfb219064897af6689a9c |
child 385857 | df8f9a0ccc91adf71e23280b5eefd7d3b6064b04 |
push id | 32669 |
push user | archaeopteryx@coole-files.de |
push date | Thu, 12 Oct 2017 21:58:56 +0000 |
treeherder | mozilla-central@25aad10380b1 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jrmuizel |
bugs | 1360128 |
milestone | 58.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/gfx/harfbuzz/src/hb-shape-plan.cc +++ b/gfx/harfbuzz/src/hb-shape-plan.cc @@ -515,25 +515,27 @@ hb_shape_plan_create_cached2 (hb_face_t if (unlikely (!proposal.shaper_func)) return hb_shape_plan_get_empty (); } retry: hb_face_t::plan_node_t *cached_plan_nodes = (hb_face_t::plan_node_t *) hb_atomic_ptr_get (&face->shape_plans); - for (hb_face_t::plan_node_t *node = cached_plan_nodes; node; node = node->next) - if (hb_shape_plan_matches (node->shape_plan, &proposal)) - { - DEBUG_MSG_FUNC (SHAPE_PLAN, node->shape_plan, "fulfilled from cache"); - return hb_shape_plan_reference (node->shape_plan); - } + + /* Don't look for plan in the cache if there were variation coordinates XXX Fix me. */ + if (!hb_coords_present (coords, num_coords)) + for (hb_face_t::plan_node_t *node = cached_plan_nodes; node; node = node->next) + if (hb_shape_plan_matches (node->shape_plan, &proposal)) + { + DEBUG_MSG_FUNC (SHAPE_PLAN, node->shape_plan, "fulfilled from cache"); + return hb_shape_plan_reference (node->shape_plan); + } /* Not found. */ - hb_shape_plan_t *shape_plan = hb_shape_plan_create2 (face, props, user_features, num_user_features, coords, num_coords, shaper_list); /* Don't add to the cache if face is inert. */ if (unlikely (hb_object_is_inert (face))) return shape_plan;