Index: third_party/harfbuzz-ng/src/hb-font.cc |
diff --git a/third_party/harfbuzz-ng/src/hb-font.cc b/third_party/harfbuzz-ng/src/hb-font.cc |
index 0cfba837a27aa46419cc8e6004b33e5b81dd5fd2..6a69cae31320723be4c48c7e28c71f31b2ca4a1f 100644 |
--- a/third_party/harfbuzz-ng/src/hb-font.cc |
+++ b/third_party/harfbuzz-ng/src/hb-font.cc |
@@ -236,7 +236,7 @@ static const hb_font_funcs_t _hb_font_funcs_nil = { |
* |
* Return value: (transfer full): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_funcs_t * |
hb_font_funcs_create (void) |
@@ -258,7 +258,7 @@ hb_font_funcs_create (void) |
* |
* Return value: (transfer full): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_funcs_t * |
hb_font_funcs_get_empty (void) |
@@ -274,7 +274,7 @@ hb_font_funcs_get_empty (void) |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_funcs_t * |
hb_font_funcs_reference (hb_font_funcs_t *ffuncs) |
@@ -288,7 +288,7 @@ hb_font_funcs_reference (hb_font_funcs_t *ffuncs) |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_funcs_destroy (hb_font_funcs_t *ffuncs) |
@@ -315,7 +315,7 @@ hb_font_funcs_destroy (hb_font_funcs_t *ffuncs) |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, |
@@ -336,7 +336,7 @@ hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, |
* |
* Return value: (transfer none): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void * |
hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, |
@@ -352,7 +352,7 @@ hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs) |
@@ -371,7 +371,7 @@ hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs) |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs) |
@@ -425,7 +425,7 @@ HB_FONT_FUNCS_IMPLEMENT_CALLBACKS |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph (hb_font_t *font, |
@@ -444,7 +444,7 @@ hb_font_get_glyph (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_position_t |
hb_font_get_glyph_h_advance (hb_font_t *font, |
@@ -462,7 +462,7 @@ hb_font_get_glyph_h_advance (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_position_t |
hb_font_get_glyph_v_advance (hb_font_t *font, |
@@ -482,7 +482,7 @@ hb_font_get_glyph_v_advance (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_h_origin (hb_font_t *font, |
@@ -503,7 +503,7 @@ hb_font_get_glyph_h_origin (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_v_origin (hb_font_t *font, |
@@ -523,7 +523,7 @@ hb_font_get_glyph_v_origin (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_position_t |
hb_font_get_glyph_h_kerning (hb_font_t *font, |
@@ -542,7 +542,7 @@ hb_font_get_glyph_h_kerning (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_position_t |
hb_font_get_glyph_v_kerning (hb_font_t *font, |
@@ -561,7 +561,7 @@ hb_font_get_glyph_v_kerning (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_extents (hb_font_t *font, |
@@ -583,7 +583,7 @@ hb_font_get_glyph_extents (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_contour_point (hb_font_t *font, |
@@ -648,7 +648,7 @@ hb_font_get_glyph_from_name (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_get_glyph_advance_for_direction (hb_font_t *font, |
@@ -669,7 +669,7 @@ hb_font_get_glyph_advance_for_direction (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_get_glyph_origin_for_direction (hb_font_t *font, |
@@ -690,7 +690,7 @@ hb_font_get_glyph_origin_for_direction (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_add_glyph_origin_for_direction (hb_font_t *font, |
@@ -711,7 +711,7 @@ hb_font_add_glyph_origin_for_direction (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, |
@@ -733,7 +733,7 @@ hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_get_glyph_kerning_for_direction (hb_font_t *font, |
@@ -755,7 +755,7 @@ hb_font_get_glyph_kerning_for_direction (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_extents_for_origin (hb_font_t *font, |
@@ -779,7 +779,7 @@ hb_font_get_glyph_extents_for_origin (hb_font_t *font, |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, |
@@ -845,7 +845,7 @@ hb_font_glyph_from_string (hb_font_t *font, |
* |
* Return value: (transfer full): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_t * |
hb_font_create (hb_face_t *face) |
@@ -861,6 +861,8 @@ hb_font_create (hb_face_t *face) |
font->face = hb_face_reference (face); |
font->klass = hb_font_funcs_get_empty (); |
+ font->x_scale = font->y_scale = hb_face_get_upem (face); |
+ |
return font; |
} |
@@ -872,7 +874,7 @@ hb_font_create (hb_face_t *face) |
* |
* Return value: (transfer full): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_t * |
hb_font_create_sub_font (hb_font_t *parent) |
@@ -885,7 +887,6 @@ hb_font_create_sub_font (hb_font_t *parent) |
if (unlikely (hb_object_is_inert (font))) |
return font; |
- hb_font_make_immutable (parent); |
font->parent = hb_font_reference (parent); |
font->x_scale = parent->x_scale; |
@@ -903,7 +904,7 @@ hb_font_create_sub_font (hb_font_t *parent) |
* |
* Return value: (transfer full) |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_t * |
hb_font_get_empty (void) |
@@ -944,7 +945,7 @@ hb_font_get_empty (void) |
* |
* Return value: (transfer full): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_t * |
hb_font_reference (hb_font_t *font) |
@@ -958,7 +959,7 @@ hb_font_reference (hb_font_t *font) |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_destroy (hb_font_t *font) |
@@ -991,7 +992,7 @@ hb_font_destroy (hb_font_t *font) |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_set_user_data (hb_font_t *font, |
@@ -1012,7 +1013,7 @@ hb_font_set_user_data (hb_font_t *font, |
* |
* Return value: (transfer none): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void * |
hb_font_get_user_data (hb_font_t *font, |
@@ -1027,7 +1028,7 @@ hb_font_get_user_data (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_make_immutable (hb_font_t *font) |
@@ -1035,6 +1036,9 @@ hb_font_make_immutable (hb_font_t *font) |
if (unlikely (hb_object_is_inert (font))) |
return; |
+ if (font->parent) |
+ hb_font_make_immutable (font->parent); |
+ |
font->immutable = true; |
} |
@@ -1046,7 +1050,7 @@ hb_font_make_immutable (hb_font_t *font) |
* |
* Return value: |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_bool_t |
hb_font_is_immutable (hb_font_t *font) |
@@ -1055,6 +1059,32 @@ hb_font_is_immutable (hb_font_t *font) |
} |
/** |
+ * hb_font_set_parent: |
+ * @font: a font. |
+ * @parent: new parent. |
+ * |
+ * Sets parent font of @font. |
+ * |
+ * Since: 1.0.5 |
+ **/ |
+void |
+hb_font_set_parent (hb_font_t *font, |
+ hb_font_t *parent) |
+{ |
+ if (font->immutable) |
+ return; |
+ |
+ if (!parent) |
+ parent = hb_font_get_empty (); |
+ |
+ hb_font_t *old = font->parent; |
+ |
+ font->parent = hb_font_reference (parent); |
+ |
+ hb_font_destroy (old); |
+} |
+ |
+/** |
* hb_font_get_parent: |
* @font: a font. |
* |
@@ -1062,7 +1092,7 @@ hb_font_is_immutable (hb_font_t *font) |
* |
* Return value: (transfer none): |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
hb_font_t * |
hb_font_get_parent (hb_font_t *font) |
@@ -1161,7 +1191,7 @@ hb_font_set_funcs_data (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_set_scale (hb_font_t *font, |
@@ -1183,7 +1213,7 @@ hb_font_set_scale (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_get_scale (hb_font_t *font, |
@@ -1202,7 +1232,7 @@ hb_font_get_scale (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_set_ppem (hb_font_t *font, |
@@ -1224,7 +1254,7 @@ hb_font_set_ppem (hb_font_t *font, |
* |
* |
* |
- * Since: 1.0 |
+ * Since: 0.9.2 |
**/ |
void |
hb_font_get_ppem (hb_font_t *font, |