[OT] Really fix possible NULL dereference this time
This commit is contained in:
parent
2941683358
commit
a5ddd9e31c
|
@ -86,13 +86,13 @@ struct hb_would_apply_context_t
|
|||
const hb_codepoint_t *glyphs_,
|
||||
unsigned int len_,
|
||||
bool zero_context_,
|
||||
const hb_set_digest_t *digest_
|
||||
const hb_set_digest_t &digest_
|
||||
) :
|
||||
face (face_),
|
||||
glyphs (glyphs_),
|
||||
len (len_),
|
||||
zero_context (zero_context_),
|
||||
digest (digest_ ? *digest_ : hb_set_digest_t()),
|
||||
digest (digest_),
|
||||
debug_depth (0) {};
|
||||
};
|
||||
|
||||
|
@ -124,7 +124,7 @@ struct hb_apply_context_t
|
|||
hb_apply_context_t (hb_font_t *font_,
|
||||
hb_buffer_t *buffer_,
|
||||
hb_mask_t lookup_mask_,
|
||||
const hb_set_digest_t *digest_) :
|
||||
const hb_set_digest_t &digest_) :
|
||||
font (font_), face (font->face), buffer (buffer_),
|
||||
direction (buffer_->props.direction),
|
||||
lookup_mask (lookup_mask_),
|
||||
|
@ -132,7 +132,7 @@ struct hb_apply_context_t
|
|||
lookup_props (0), property (0), debug_depth (0),
|
||||
gdef (*hb_ot_layout_from_face (face)->gdef),
|
||||
has_glyph_classes (gdef.has_glyph_classes ()),
|
||||
digest (*digest_) {}
|
||||
digest (digest_) {}
|
||||
|
||||
void set_lookup_props (unsigned int lookup_props_) {
|
||||
lookup_props = lookup_props_;
|
||||
|
|
|
@ -417,7 +417,7 @@ hb_ot_layout_would_substitute_lookup_fast (hb_face_t *face,
|
|||
hb_bool_t zero_context)
|
||||
{
|
||||
if (unlikely (lookup_index >= hb_ot_layout_from_face (face)->gsub_lookup_count)) return false;
|
||||
OT::hb_would_apply_context_t c (face, glyphs, glyphs_length, zero_context, &hb_ot_layout_from_face (face)->gsub_digests[lookup_index]);
|
||||
OT::hb_would_apply_context_t c (face, glyphs, glyphs_length, zero_context, hb_ot_layout_from_face (face)->gsub_digests[lookup_index]);
|
||||
return hb_ot_layout_from_face (face)->gsub->would_substitute_lookup (&c, lookup_index);
|
||||
}
|
||||
|
||||
|
@ -434,7 +434,7 @@ hb_ot_layout_substitute_lookup (hb_font_t *font,
|
|||
hb_mask_t mask)
|
||||
{
|
||||
if (unlikely (lookup_index >= hb_ot_layout_from_face (font->face)->gsub_lookup_count)) return false;
|
||||
OT::hb_apply_context_t c (font, buffer, mask, &hb_ot_layout_from_face (font->face)->gsub_digests[lookup_index]);
|
||||
OT::hb_apply_context_t c (font, buffer, mask, hb_ot_layout_from_face (font->face)->gsub_digests[lookup_index]);
|
||||
return hb_ot_layout_from_face (font->face)->gsub->substitute_lookup (&c, lookup_index);
|
||||
}
|
||||
|
||||
|
@ -476,7 +476,7 @@ hb_ot_layout_position_lookup (hb_font_t *font,
|
|||
hb_mask_t mask)
|
||||
{
|
||||
if (unlikely (lookup_index >= hb_ot_layout_from_face (font->face)->gpos_lookup_count)) return false;
|
||||
OT::hb_apply_context_t c (font, buffer, mask, &hb_ot_layout_from_face (font->face)->gpos_digests[lookup_index]);
|
||||
OT::hb_apply_context_t c (font, buffer, mask, hb_ot_layout_from_face (font->face)->gpos_digests[lookup_index]);
|
||||
return hb_ot_layout_from_face (font->face)->gpos->position_lookup (&c, lookup_index);
|
||||
}
|
||||
|
||||
|
|
|
@ -246,7 +246,9 @@ arabic_fallback_shape (hb_font_t *font, hb_buffer_t *buffer)
|
|||
buffer->info[i].codepoint = shaped;
|
||||
}
|
||||
|
||||
OT::hb_apply_context_t c (font, buffer, 1/*global mask*/, NULL);
|
||||
hb_set_digest_t digest;
|
||||
digest.init ();
|
||||
OT::hb_apply_context_t c (font, buffer, 1/*global mask*/, digest);
|
||||
c.set_lookup_props (OT::LookupFlag::IgnoreMarks);
|
||||
|
||||
/* Mandatory ligatures */
|
||||
|
|
Loading…
Reference in New Issue