return * (const Type *) (const void *) ((const char *) head + stride * i);
}
- inline void advance (unsigned int count)
+ inline Supplier<Type> & operator += (unsigned int count)
{
if (unlikely (count > len))
count = len;
len -= count;
head = (const Type *) (const void *) ((const char *) head + stride * count);
+ return *this;
}
private:
if (unlikely (!serialize (c, items_len))) return_trace (false);
for (unsigned int i = 0; i < items_len; i++)
array[i] = items[i];
- items.advance (items_len);
+ items += items_len;
return_trace (true);
}
if (unlikely (!c->extend (*this))) return_trace (false);
for (unsigned int i = 0; i < items_len - 1; i++)
array[i] = items[i];
- items.advance (items_len - 1);
+ items += items_len - 1;
return_trace (true);
}
if (unlikely (!c->extend (glyphArray))) return_trace (false);
for (unsigned int i = 0; i < num_glyphs; i++)
glyphArray[i] = glyphs[i];
- glyphs.advance (num_glyphs);
+ glyphs += num_glyphs;
return_trace (true);
}
} else {
rangeRecord[range].end = glyphs[i];
}
- glyphs.advance (num_glyphs);
+ glyphs += num_glyphs;
return_trace (true);
}
if (unlikely (!sequence[i].serialize (c, this).serialize (c,
substitute_glyphs_list,
substitute_len_list[i]))) return_trace (false);
- substitute_len_list.advance (num_glyphs);
+ substitute_len_list += num_glyphs;
if (unlikely (!coverage.serialize (c, this).serialize (c, glyphs, num_glyphs))) return_trace (false);
return_trace (true);
}
if (unlikely (!alternateSet[i].serialize (c, this).serialize (c,
alternate_glyphs_list,
alternate_len_list[i]))) return_trace (false);
- alternate_len_list.advance (num_glyphs);
+ alternate_len_list += num_glyphs;
if (unlikely (!coverage.serialize (c, this).serialize (c, glyphs, num_glyphs))) return_trace (false);
return_trace (true);
}
ligatures[i],
component_list,
component_count_list[i]))) return_trace (false);
- ligatures.advance (num_ligatures);
- component_count_list.advance (num_ligatures);
+ ligatures += num_ligatures;
+ component_count_list += num_ligatures;
return_trace (true);
}
component_count_list,
ligature_per_first_glyph_count_list[i],
component_list))) return_trace (false);
- ligature_per_first_glyph_count_list.advance (num_first_glyphs);
+ ligature_per_first_glyph_count_list += num_first_glyphs;
if (unlikely (!coverage.serialize (c, this).serialize (c, first_glyphs, num_first_glyphs))) return_trace (false);
return_trace (true);
}