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

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

Issue 1476763003: Roll HarfBuzz to 1.1.1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: windows line height rebaseline Created 5 years 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
OLDNEW
1 /* 1 /*
2 * Copyright © 1998-2004 David Turner and Werner Lemberg 2 * Copyright © 1998-2004 David Turner and Werner Lemberg
3 * Copyright © 2004,2007,2009,2010 Red Hat, Inc. 3 * Copyright © 2004,2007,2009,2010 Red Hat, Inc.
4 * Copyright © 2011,2012 Google, Inc. 4 * Copyright © 2011,2012 Google, Inc.
5 * 5 *
6 * This is part of HarfBuzz, a text shaping library. 6 * This is part of HarfBuzz, a text shaping library.
7 * 7 *
8 * Permission is hereby granted, without written agreement and without 8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this 9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the 10 * software and its documentation for any purpose, provided that the
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 85
86 86
87 /* Internal API */ 87 /* Internal API */
88 88
89 bool 89 bool
90 hb_buffer_t::enlarge (unsigned int size) 90 hb_buffer_t::enlarge (unsigned int size)
91 { 91 {
92 if (unlikely (in_error)) 92 if (unlikely (in_error))
93 return false; 93 return false;
94 if (unlikely (size > max_len))
95 {
96 in_error = true;
97 return false;
98 }
94 99
95 unsigned int new_allocated = allocated; 100 unsigned int new_allocated = allocated;
96 hb_glyph_position_t *new_pos = NULL; 101 hb_glyph_position_t *new_pos = NULL;
97 hb_glyph_info_t *new_info = NULL; 102 hb_glyph_info_t *new_info = NULL;
98 bool separate_out = out_info != info; 103 bool separate_out = out_info != info;
99 104
100 if (unlikely (_hb_unsigned_int_mul_overflows (size, sizeof (info[0])))) 105 if (unlikely (_hb_unsigned_int_mul_overflows (size, sizeof (info[0]))))
101 goto done; 106 goto done;
102 107
103 while (size >= new_allocated) 108 while (size >= new_allocated)
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 } 196 }
192 197
193 void 198 void
194 hb_buffer_t::clear (void) 199 hb_buffer_t::clear (void)
195 { 200 {
196 if (unlikely (hb_object_is_inert (this))) 201 if (unlikely (hb_object_is_inert (this)))
197 return; 202 return;
198 203
199 hb_segment_properties_t default_props = HB_SEGMENT_PROPERTIES_DEFAULT; 204 hb_segment_properties_t default_props = HB_SEGMENT_PROPERTIES_DEFAULT;
200 props = default_props; 205 props = default_props;
206 scratch_flags = HB_BUFFER_SCRATCH_FLAG_DEFAULT;
201 207
202 content_type = HB_BUFFER_CONTENT_TYPE_INVALID; 208 content_type = HB_BUFFER_CONTENT_TYPE_INVALID;
203 in_error = false; 209 in_error = false;
204 have_output = false; 210 have_output = false;
205 have_positions = false; 211 have_positions = false;
206 212
207 idx = 0; 213 idx = 0;
208 len = 0; 214 len = 0;
209 out_len = 0; 215 out_len = 0;
210 out_info = info; 216 out_info = info;
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 * Since: 0.9.2 713 * Since: 0.9.2
708 **/ 714 **/
709 hb_buffer_t * 715 hb_buffer_t *
710 hb_buffer_create (void) 716 hb_buffer_create (void)
711 { 717 {
712 hb_buffer_t *buffer; 718 hb_buffer_t *buffer;
713 719
714 if (!(buffer = hb_object_create<hb_buffer_t> ())) 720 if (!(buffer = hb_object_create<hb_buffer_t> ()))
715 return hb_buffer_get_empty (); 721 return hb_buffer_get_empty ();
716 722
723 buffer->max_len = HB_BUFFER_MAX_LEN_DEFAULT;
724
717 buffer->reset (); 725 buffer->reset ();
718 726
719 return buffer; 727 return buffer;
720 } 728 }
721 729
722 /** 730 /**
723 * hb_buffer_get_empty: 731 * hb_buffer_get_empty:
724 * 732 *
725 * 733 *
726 * 734 *
727 * Return value: (transfer full): 735 * Return value: (transfer full):
728 * 736 *
729 * Since: 0.9.2 737 * Since: 0.9.2
730 **/ 738 **/
731 hb_buffer_t * 739 hb_buffer_t *
732 hb_buffer_get_empty (void) 740 hb_buffer_get_empty (void)
733 { 741 {
734 static const hb_buffer_t _hb_buffer_nil = { 742 static const hb_buffer_t _hb_buffer_nil = {
735 HB_OBJECT_HEADER_STATIC, 743 HB_OBJECT_HEADER_STATIC,
736 744
737 const_cast<hb_unicode_funcs_t *> (&_hb_unicode_funcs_nil), 745 const_cast<hb_unicode_funcs_t *> (&_hb_unicode_funcs_nil),
738 HB_BUFFER_FLAG_DEFAULT, 746 HB_BUFFER_FLAG_DEFAULT,
739 HB_BUFFER_CLUSTER_LEVEL_DEFAULT, 747 HB_BUFFER_CLUSTER_LEVEL_DEFAULT,
740 HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT, 748 HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT,
749 HB_BUFFER_SCRATCH_FLAG_DEFAULT,
750 HB_BUFFER_MAX_LEN_DEFAULT,
741 751
742 HB_BUFFER_CONTENT_TYPE_INVALID, 752 HB_BUFFER_CONTENT_TYPE_INVALID,
743 HB_SEGMENT_PROPERTIES_DEFAULT, 753 HB_SEGMENT_PROPERTIES_DEFAULT,
744 true, /* in_error */ 754 true, /* in_error */
745 true, /* have_output */ 755 true, /* have_output */
746 true /* have_positions */ 756 true /* have_positions */
747 757
748 /* Zero is good enough for everything else. */ 758 /* Zero is good enough for everything else. */
749 }; 759 };
750 760
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
1692 continue; 1702 continue;
1693 /* Move item i to occupy place for item j, shift what's in between. */ 1703 /* Move item i to occupy place for item j, shift what's in between. */
1694 merge_clusters (j, i + 1); 1704 merge_clusters (j, i + 1);
1695 { 1705 {
1696 hb_glyph_info_t t = info[i]; 1706 hb_glyph_info_t t = info[i];
1697 memmove (&info[j + 1], &info[j], (i - j) * sizeof (hb_glyph_info_t)); 1707 memmove (&info[j + 1], &info[j], (i - j) * sizeof (hb_glyph_info_t));
1698 info[j] = t; 1708 info[j] = t;
1699 } 1709 }
1700 } 1710 }
1701 } 1711 }
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/README.chromium ('k') | third_party/harfbuzz-ng/src/hb-buffer-private.hh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698