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]));
162 out_info = info;
204 out_info = info;
253 out_info = info;
266 out_info = info;
279 out_info = info;
292 if (out_info != info)
296 info = out_info;
297 out_info = tmp_string;
298 pos = (hb_glyph_position_t *) out_info;
320 hb_glyph_info_t *pinfo = &out_info[out_len];
337 out_info[out_len] = info[idx];
338 out_info[out_len].codepoint = glyph_index;
348 out_info[out_len] = glyph_info;
358 out_info[out_len] = info[idx];
380 memmove (out_info + out_len, info + idx, count * sizeof (out_info[0]));
395 memmove (info + idx, out_info + out_len, count * sizeof (out_info[0]));
404 if (unlikely (out_info != info || out_len != idx)) {
406 out_info[out_len] = info[idx];
408 out_info[out_len].codepoint = glyph_index;
526 for (unsigned i = out_len; i && out_info[i - 1].cluster == info[start].cluster; i--)
527 out_info[i - 1].cluster = cluster;
543 unsigned int cluster = out_info[start].cluster;
546 cluster = MIN (cluster, out_info[i].cluster);
549 while (start && out_info[start - 1].cluster == out_info[start].cluster)
553 while (end < out_len && out_info[end - 1].cluster == out_info[end].cluster)
558 for (unsigned i = idx; i < len && info[i].cluster == out_info[end - 1].cluster; i++)
562 out_info[i].cluster = cluster;