Home | History | Annotate | Download | only in src

Lines Matching refs:out_info

63  * There are two info pointers: info and out_info.  They always have
66 * As an optimization, both info and out_info may point to the
72 * As soon as out_info gets longer than info, out_info is moved over
76 * switches info and out_info.
92 bool separate_out = out_info != info;
117 out_info = separate_out ? (hb_glyph_info_t *) pos : info;
130 if (out_info == info &&
135 out_info = (hb_glyph_info_t *) pos;
136 memcpy (out_info, info, out_len * sizeof (out_info[0]));
149 out_info = info;
189 out_info = info;
238 out_info = info;
251 out_info = info;
264 out_info = info;
277 if (out_info != info)
281 info = out_info;
282 out_info = tmp_string;
283 pos = (hb_glyph_position_t *) out_info;
305 hb_glyph_info_t *pinfo = &out_info[out_len];
322 out_info[out_len] = info[idx];
323 out_info[out_len].codepoint = glyph_index;
333 out_info[out_len] = glyph_info;
343 out_info[out_len] = info[idx];
351 if (unlikely (out_info != info || out_len != idx)) {
353 out_info[out_len] = info[idx];
355 out_info[out_len].codepoint = glyph_index;
469 for (unsigned i = out_len; i && out_info[i - 1].cluster == info[start].cluster; i--)
470 out_info[i - 1].cluster = cluster;
482 unsigned int cluster = out_info[start].cluster;
485 cluster = MIN (cluster, out_info[i].cluster);
488 while (start && out_info[start - 1].cluster == out_info[start].cluster)
492 while (end < out_len && out_info[end - 1].cluster == out_info[end].cluster)
497 for (unsigned i = idx; i < len && info[i].cluster == out_info[end - 1].cluster; i++)
501 out_info[i].cluster = cluster;