summaryrefslogtreecommitdiff
path: root/chromium/third_party/harfbuzz-ng/src
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/harfbuzz-ng/src')
-rw-r--r--chromium/third_party/harfbuzz-ng/src/hb-ot-shape-private.hh2
-rw-r--r--chromium/third_party/harfbuzz-ng/src/hb-shape-plan-private.hh2
-rw-r--r--chromium/third_party/harfbuzz-ng/src/hb-shape-plan.cc11
3 files changed, 5 insertions, 10 deletions
diff --git a/chromium/third_party/harfbuzz-ng/src/hb-ot-shape-private.hh b/chromium/third_party/harfbuzz-ng/src/hb-ot-shape-private.hh
index 817147199fd..cbfab5b40c9 100644
--- a/chromium/third_party/harfbuzz-ng/src/hb-ot-shape-private.hh
+++ b/chromium/third_party/harfbuzz-ng/src/hb-ot-shape-private.hh
@@ -66,7 +66,7 @@ struct hb_ot_shape_planner_t
hb_ot_map_builder_t map;
hb_ot_shape_planner_t (const hb_shape_plan_t *master_plan) :
- face (master_plan->face),
+ face (master_plan->face_unsafe),
props (master_plan->props),
shaper (NULL),
map (face, &props) {}
diff --git a/chromium/third_party/harfbuzz-ng/src/hb-shape-plan-private.hh b/chromium/third_party/harfbuzz-ng/src/hb-shape-plan-private.hh
index dd014e38d01..adb1576a0df 100644
--- a/chromium/third_party/harfbuzz-ng/src/hb-shape-plan-private.hh
+++ b/chromium/third_party/harfbuzz-ng/src/hb-shape-plan-private.hh
@@ -39,7 +39,7 @@ struct hb_shape_plan_t
ASSERT_POD ();
hb_bool_t default_shaper_list;
- hb_face_t *face;
+ hb_face_t *face_unsafe; /* We don't carry a reference to face. */
hb_segment_properties_t props;
hb_shape_func_t *shaper_func;
diff --git a/chromium/third_party/harfbuzz-ng/src/hb-shape-plan.cc b/chromium/third_party/harfbuzz-ng/src/hb-shape-plan.cc
index b44a9e2ab77..13544056d72 100644
--- a/chromium/third_party/harfbuzz-ng/src/hb-shape-plan.cc
+++ b/chromium/third_party/harfbuzz-ng/src/hb-shape-plan.cc
@@ -46,7 +46,7 @@ hb_shape_plan_plan (hb_shape_plan_t *shape_plan,
#define HB_SHAPER_PLAN(shaper) \
HB_STMT_START { \
- if (hb_##shaper##_shaper_face_data_ensure (shape_plan->face)) { \
+ if (hb_##shaper##_shaper_face_data_ensure (shape_plan->face_unsafe)) { \
HB_SHAPER_DATA (shaper, shape_plan) = \
HB_SHAPER_DATA_CREATE_FUNC (shaper, shape_plan) (shape_plan, user_features, num_user_features); \
shape_plan->shaper_func = _hb_##shaper##_shape; \
@@ -117,7 +117,7 @@ hb_shape_plan_create (hb_face_t *face,
hb_face_make_immutable (face);
shape_plan->default_shaper_list = shaper_list == NULL;
- shape_plan->face = hb_face_reference (face);
+ shape_plan->face_unsafe = face;
shape_plan->props = *props;
hb_shape_plan_plan (shape_plan, user_features, num_user_features, shaper_list);
@@ -190,8 +190,6 @@ hb_shape_plan_destroy (hb_shape_plan_t *shape_plan)
#include "hb-shaper-list.hh"
#undef HB_SHAPER_IMPLEMENT
- hb_face_destroy (shape_plan->face);
-
free (shape_plan);
}
@@ -264,7 +262,7 @@ hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
hb_object_is_inert (buffer)))
return false;
- assert (shape_plan->face == font->face);
+ assert (shape_plan->face_unsafe == font->face);
assert (hb_segment_properties_equal (&shape_plan->props, &buffer->props));
#define HB_SHAPER_EXECUTE(shaper) \
@@ -395,9 +393,6 @@ retry:
goto retry;
}
- /* Release our reference on face. */
- hb_face_destroy (face);
-
return hb_shape_plan_reference (shape_plan);
}