src/hb-shape-plan.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
New commits: commit 19e77e01bc13f44138e1d50533327d314dd0a018 Author: jfkthame <[email protected]> Date: Mon Oct 2 13:08:49 2017 +0100 [shape-plan] Don't look for a cached plan if variation coords are specified. Fixes #549. (#550) This is a temporary hack just to avoid incorrect shaping results, pending proper support for caching shape-plans with variation coordinates. diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc index 3abf555c..5573cd22 100644 --- a/src/hb-shape-plan.cc +++ b/src/hb-shape-plan.cc @@ -520,15 +520,17 @@ hb_shape_plan_create_cached2 (hb_face_t *face, 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); - } - /* Not found. */ + /* 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, _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
