The glyph striker (underline/strike-through) did not check for table
availability, possibly accessing a NULL pointer. Change this to
only strike the glyph if the table with the appropriate information
is available. Currently there is no fallback for fonts without the
required information.
y_scale = face->size->metrics.y_scale;
// Add points to the outline
- if (under) {
+ if (under && ps) {
int pos, size;
pos = FT_MulFix(ps->underlinePosition, y_scale * font->scale_y);
size = FT_MulFix(ps->underlineThickness,
ol->contours[ol->n_contours++] = ol->n_points - 1;
}
- if (through) {
+ if (through && os2) {
int pos, size;
pos = FT_MulFix(os2->yStrikeoutPosition, y_scale * font->scale_y);
size = FT_MulFix(os2->yStrikeoutSize, y_scale * font->scale_y / 2);