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

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

Issue 475363002: Roll HarfBuzz to 0.9.35 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Windows build fix attempt Created 6 years, 4 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-buffer.cc ('k') | third_party/harfbuzz-ng/src/hb-common.h » ('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 © 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 30 matching lines...) Expand all
41 41
42 /* 42 /*
43 * hb_buffer_t 43 * hb_buffer_t
44 */ 44 */
45 45
46 struct hb_buffer_t { 46 struct hb_buffer_t {
47 hb_object_header_t header; 47 hb_object_header_t header;
48 ASSERT_POD (); 48 ASSERT_POD ();
49 49
50 /* Information about how the text in the buffer should be treated */ 50 /* Information about how the text in the buffer should be treated */
51
52 hb_unicode_funcs_t *unicode; /* Unicode functions */ 51 hb_unicode_funcs_t *unicode; /* Unicode functions */
53 hb_segment_properties_t props; /* Script, language, direction */
54 hb_buffer_flags_t flags; /* BOT / EOT / etc. */ 52 hb_buffer_flags_t flags; /* BOT / EOT / etc. */
55 hb_codepoint_t replacement; /* U+FFFD or something else. */ 53 hb_codepoint_t replacement; /* U+FFFD or something else. */
56 54
57 /* Buffer contents */ 55 /* Buffer contents */
58
59 hb_buffer_content_type_t content_type; 56 hb_buffer_content_type_t content_type;
57 hb_segment_properties_t props; /* Script, language, direction */
60 58
61 bool in_error; /* Allocation failed */ 59 bool in_error; /* Allocation failed */
62 bool have_output; /* Whether we have an output buffer going on */ 60 bool have_output; /* Whether we have an output buffer going on */
63 bool have_positions; /* Whether we have positions */ 61 bool have_positions; /* Whether we have positions */
64 62
65 unsigned int idx; /* Cursor into ->info and ->pos arrays */ 63 unsigned int idx; /* Cursor into ->info and ->pos arrays */
66 unsigned int len; /* Length of ->info and ->pos arrays */ 64 unsigned int len; /* Length of ->info and ->pos arrays */
67 unsigned int out_len; /* Length of ->out array if have_output */ 65 unsigned int out_len; /* Length of ->out array if have_output */
68 66
69 unsigned int allocated; /* Length of allocated arrays */ 67 unsigned int allocated; /* Length of allocated arrays */
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 unsigned int end); 174 unsigned int end);
177 HB_INTERNAL void merge_out_clusters (unsigned int start, 175 HB_INTERNAL void merge_out_clusters (unsigned int start,
178 unsigned int end); 176 unsigned int end);
179 177
180 /* Internal methods */ 178 /* Internal methods */
181 HB_INTERNAL bool enlarge (unsigned int size); 179 HB_INTERNAL bool enlarge (unsigned int size);
182 180
183 inline bool ensure (unsigned int size) 181 inline bool ensure (unsigned int size)
184 { return likely (!size || size < allocated) ? true : enlarge (size); } 182 { return likely (!size || size < allocated) ? true : enlarge (size); }
185 183
184 inline bool ensure_inplace (unsigned int size)
185 { return likely (!size || size < allocated); }
186
186 HB_INTERNAL bool make_room_for (unsigned int num_in, unsigned int num_out); 187 HB_INTERNAL bool make_room_for (unsigned int num_in, unsigned int num_out);
187 HB_INTERNAL bool shift_forward (unsigned int count); 188 HB_INTERNAL bool shift_forward (unsigned int count);
188 189
189 typedef long scratch_buffer_t; 190 typedef long scratch_buffer_t;
190 HB_INTERNAL scratch_buffer_t *get_scratch_buffer (unsigned int *size); 191 HB_INTERNAL scratch_buffer_t *get_scratch_buffer (unsigned int *size);
191 192
192 inline void clear_context (unsigned int side) { context_len[side] = 0; } 193 inline void clear_context (unsigned int side) { context_len[side] = 0; }
193 }; 194 };
194 195
195 196
196 #define HB_BUFFER_XALLOCATE_VAR(b, func, var, owner) \ 197 #define HB_BUFFER_XALLOCATE_VAR(b, func, var, owner) \
197 b->func (offsetof (hb_glyph_info_t, var) - offsetof(hb_glyph_info_t, var1), \ 198 b->func (offsetof (hb_glyph_info_t, var) - offsetof(hb_glyph_info_t, var1), \
198 sizeof (b->info[0].var), owner) 199 sizeof (b->info[0].var), owner)
199 #define HB_BUFFER_ALLOCATE_VAR(b, var) \ 200 #define HB_BUFFER_ALLOCATE_VAR(b, var) \
200 HB_BUFFER_XALLOCATE_VAR (b, allocate_var, var (), #var) 201 HB_BUFFER_XALLOCATE_VAR (b, allocate_var, var (), #var)
201 #define HB_BUFFER_DEALLOCATE_VAR(b, var) \ 202 #define HB_BUFFER_DEALLOCATE_VAR(b, var) \
202 HB_BUFFER_XALLOCATE_VAR (b, deallocate_var, var (), #var) 203 HB_BUFFER_XALLOCATE_VAR (b, deallocate_var, var (), #var)
203 #define HB_BUFFER_ASSERT_VAR(b, var) \ 204 #define HB_BUFFER_ASSERT_VAR(b, var) \
204 HB_BUFFER_XALLOCATE_VAR (b, assert_var, var (), #var) 205 HB_BUFFER_XALLOCATE_VAR (b, assert_var, var (), #var)
205 206
206 207
207 #endif /* HB_BUFFER_PRIVATE_HH */ 208 #endif /* HB_BUFFER_PRIVATE_HH */
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-buffer.cc ('k') | third_party/harfbuzz-ng/src/hb-common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698