CompositeGlyphHeader::Iterator *composite /* OUT */) const
{
unsigned int start_offset, end_offset;
- if (!get_offsets (glyph, /* trim */ false, &start_offset, &end_offset))
+ if (!get_offsets (glyph, &start_offset, &end_offset))
return false; /* glyph not found */
return CompositeGlyphHeader::get_iterator ((const char*) this->glyf_table + start_offset,
}
/* based on FontTools _g_l_y_f.py::trim */
- inline bool trim_glyph(unsigned int start_offset,
- unsigned int *end_offset) const
+ inline bool trim(unsigned int start_offset,
+ unsigned int *end_offset) const
{
static const int FLAG_X_SHORT = 0x02;
static const int FLAG_Y_SHORT = 0x04;
}
inline bool get_offsets (hb_codepoint_t glyph,
- bool trim,
unsigned int *start_offset /* OUT */,
unsigned int *end_offset /* OUT */) const
{
if (*start_offset > *end_offset || *end_offset > glyf_len)
return false;
- if (trim)
- return trim_glyph(*start_offset, end_offset);
-
return true;
}
hb_glyph_extents_t *extents) const
{
unsigned int start_offset, end_offset;
- if (!get_offsets (glyph, /* trim */ false, &start_offset, &end_offset))
+ if (!get_offsets (glyph, &start_offset, &end_offset))
return false;
if (end_offset - start_offset < GlyphHeader::static_size)
*(instruction_ranges->push()) = 0;
unsigned int start_offset, end_offset;
- if (unlikely (!glyf.get_offsets(next_glyph, /* trim */ true, &start_offset, &end_offset)))
+ if (unlikely (!(glyf.get_offsets(next_glyph, &start_offset, &end_offset)
+ && glyf.trim(start_offset, &end_offset))))
{
DEBUG_MSG(SUBSET, nullptr, "Invalid gid %d", next_glyph);
continue;
for (unsigned int i = 0; i < glyph_ids.len; i++)
{
unsigned int start_offset, end_offset;
- if (unlikely (!glyf.get_offsets (glyph_ids[i], /* trim */ true, &start_offset, &end_offset)))
+ if (unlikely (!(glyf.get_offsets (glyph_ids[i], &start_offset, &end_offset)
+ && glyf.trim(start_offset, &end_offset))))
end_offset = start_offset = 0;
unsigned int instruction_start = instruction_ranges[i * 2];
unsigned int instruction_end = instruction_ranges[i * 2 + 1];