X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fhb-shape-plan.cc;h=2166173f9e5e3acf0675e22ba398081c9dcd7dda;hb=e684182ac634596bace621b0e84dfc98d2bc82c5;hp=56e2ea5c19254c1f94e696efba5b01151446ec66;hpb=087e8c5d58be057cb77192932cd7fa8f7aacf1a5;p=platform%2Fupstream%2Fharfbuzz.git diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc index 56e2ea5..2166173 100644 --- a/src/hb-shape-plan.cc +++ b/src/hb-shape-plan.cc @@ -106,7 +106,7 @@ hb_shape_plan_plan (hb_shape_plan_t *shape_plan, * * Return value: (transfer full): * - * Since: 0.9.7 + * Since: 1.0 **/ hb_shape_plan_t * hb_shape_plan_create (hb_face_t *face, @@ -126,9 +126,9 @@ hb_shape_plan_create (hb_face_t *face, if (unlikely (!face)) face = hb_face_get_empty (); - if (unlikely (!props)) + if (unlikely (!props || hb_object_is_inert (face))) return hb_shape_plan_get_empty (); - if (num_user_features && !(features = (hb_feature_t *) calloc (num_user_features, sizeof (hb_feature_t)))) + if (num_user_features && !(features = (hb_feature_t *) malloc (num_user_features * sizeof (hb_feature_t)))) return hb_shape_plan_get_empty (); if (!(shape_plan = hb_object_create ())) { free (features); @@ -158,7 +158,7 @@ hb_shape_plan_create (hb_face_t *face, * * Return value: (transfer full): * - * Since: 0.9.7 + * Since: 1.0 **/ hb_shape_plan_t * hb_shape_plan_get_empty (void) @@ -194,7 +194,7 @@ hb_shape_plan_get_empty (void) * * Return value: (transfer full): * - * Since: 0.9.7 + * Since: 1.0 **/ hb_shape_plan_t * hb_shape_plan_reference (hb_shape_plan_t *shape_plan) @@ -208,7 +208,7 @@ hb_shape_plan_reference (hb_shape_plan_t *shape_plan) * * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_shape_plan_destroy (hb_shape_plan_t *shape_plan) @@ -236,7 +236,7 @@ hb_shape_plan_destroy (hb_shape_plan_t *shape_plan) * * Return value: * - * Since: 0.9.7 + * Since: 1.0 **/ hb_bool_t hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, @@ -257,7 +257,7 @@ hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, * * Return value: (transfer none): * - * Since: 0.9.7 + * Since: 1.0 **/ void * hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, @@ -279,7 +279,7 @@ hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, * * Return value: * - * Since: 0.9.7 + * Since: 1.0 **/ hb_bool_t hb_shape_plan_execute (hb_shape_plan_t *shape_plan, @@ -293,13 +293,9 @@ hb_shape_plan_execute (hb_shape_plan_t *shape_plan, num_features, shape_plan->shaper_func); - if (unlikely (!buffer->len)) - return true; - - assert (!hb_object_is_inert (buffer)); - assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE); - - if (unlikely (hb_object_is_inert (shape_plan))) + if (unlikely (hb_object_is_inert (shape_plan) || + hb_object_is_inert (font) || + hb_object_is_inert (buffer))) return false; assert (shape_plan->face_unsafe == font->face); @@ -400,7 +396,7 @@ hb_non_global_user_features_present (const hb_feature_t *user_features, * * Return value: (transfer full): * - * Since: 0.9.7 + * Since: 1.0 **/ hb_shape_plan_t * hb_shape_plan_create_cached (hb_face_t *face, @@ -457,10 +453,6 @@ retry: hb_shape_plan_t *shape_plan = hb_shape_plan_create (face, props, user_features, num_user_features, shaper_list); - /* Don't add to the cache if face is inert. */ - if (unlikely (hb_object_is_inert (face))) - return shape_plan; - /* Don't add the plan to the cache if there were user features with non-global ranges */ if (hb_non_global_user_features_present (user_features, num_user_features)) @@ -491,7 +483,7 @@ retry: * * Return value: (transfer none): * - * Since: 0.9.7 + * Since: 1.0 **/ const char * hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan)