Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: third_party/harfbuzz-ng/src/hb-shape-plan.cc

Issue 1408003004: Roll harfbuzz-ng to 1.0.5 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2526
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-shape.cc ('k') | third_party/harfbuzz-ng/src/hb-shaper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright © 2012 Google, Inc. 2 * Copyright © 2012 Google, Inc.
3 * 3 *
4 * This is part of HarfBuzz, a text shaping library. 4 * This is part of HarfBuzz, a text shaping library.
5 * 5 *
6 * Permission is hereby granted, without written agreement and without 6 * Permission is hereby granted, without written agreement and without
7 * license or royalty fees, to use, copy, modify, and distribute this 7 * license or royalty fees, to use, copy, modify, and distribute this
8 * software and its documentation for any purpose, provided that the 8 * software and its documentation for any purpose, provided that the
9 * above copyright notice and the following two paragraphs appear in 9 * above copyright notice and the following two paragraphs appear in
10 * all copies of this software. 10 * all copies of this software.
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 num_user_features, 121 num_user_features,
122 shaper_list); 122 shaper_list);
123 123
124 hb_shape_plan_t *shape_plan; 124 hb_shape_plan_t *shape_plan;
125 hb_feature_t *features = NULL; 125 hb_feature_t *features = NULL;
126 126
127 if (unlikely (!face)) 127 if (unlikely (!face))
128 face = hb_face_get_empty (); 128 face = hb_face_get_empty ();
129 if (unlikely (!props)) 129 if (unlikely (!props))
130 return hb_shape_plan_get_empty (); 130 return hb_shape_plan_get_empty ();
131 if (num_user_features && !(features = (hb_feature_t *) malloc (num_user_featur es * sizeof (hb_feature_t)))) 131 if (num_user_features && !(features = (hb_feature_t *) calloc (num_user_featur es, sizeof (hb_feature_t))))
132 return hb_shape_plan_get_empty (); 132 return hb_shape_plan_get_empty ();
133 if (!(shape_plan = hb_object_create<hb_shape_plan_t> ())) { 133 if (!(shape_plan = hb_object_create<hb_shape_plan_t> ())) {
134 free (features); 134 free (features);
135 return hb_shape_plan_get_empty (); 135 return hb_shape_plan_get_empty ();
136 } 136 }
137 137
138 assert (props->direction != HB_DIRECTION_INVALID); 138 assert (props->direction != HB_DIRECTION_INVALID);
139 139
140 hb_face_make_immutable (face); 140 hb_face_make_immutable (face);
141 shape_plan->default_shaper_list = shaper_list == NULL; 141 shape_plan->default_shaper_list = shaper_list == NULL;
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 hb_font_t *font, 286 hb_font_t *font,
287 hb_buffer_t *buffer, 287 hb_buffer_t *buffer,
288 const hb_feature_t *features, 288 const hb_feature_t *features,
289 unsigned int num_features) 289 unsigned int num_features)
290 { 290 {
291 DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan, 291 DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan,
292 "num_features=%d shaper_func=%p", 292 "num_features=%d shaper_func=%p",
293 num_features, 293 num_features,
294 shape_plan->shaper_func); 294 shape_plan->shaper_func);
295 295
296 if (unlikely (hb_object_is_inert (shape_plan) || 296 if (unlikely (!buffer->len))
297 » » hb_object_is_inert (buffer))) 297 return true;
298
299 assert (!hb_object_is_inert (buffer));
300 assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE);
301
302 if (unlikely (hb_object_is_inert (shape_plan)))
298 return false; 303 return false;
299 304
300 assert (shape_plan->face_unsafe == font->face); 305 assert (shape_plan->face_unsafe == font->face);
301 assert (hb_segment_properties_equal (&shape_plan->props, &buffer->props)); 306 assert (hb_segment_properties_equal (&shape_plan->props, &buffer->props));
302 307
303 #define HB_SHAPER_EXECUTE(shaper) \ 308 #define HB_SHAPER_EXECUTE(shaper) \
304 HB_STMT_START { \ 309 HB_STMT_START { \
305 return HB_SHAPER_DATA (shaper, shape_plan) && \ 310 return HB_SHAPER_DATA (shaper, shape_plan) && \
306 hb_##shaper##_shaper_font_data_ensure (font) && \ 311 hb_##shaper##_shaper_font_data_ensure (font) && \
307 _hb_##shaper##_shape (shape_plan, font, buffer, features, num_f eatures); \ 312 _hb_##shaper##_shape (shape_plan, font, buffer, features, num_f eatures); \
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 * 491 *
487 * Return value: (transfer none): 492 * Return value: (transfer none):
488 * 493 *
489 * Since: 0.9.7 494 * Since: 0.9.7
490 **/ 495 **/
491 const char * 496 const char *
492 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan) 497 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan)
493 { 498 {
494 return shape_plan->shaper_name; 499 return shape_plan->shaper_name;
495 } 500 }
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-shape.cc ('k') | third_party/harfbuzz-ng/src/hb-shaper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698