Don't do fractions if buffer is ASCII-only
This commit is contained in:
parent
6986208ba3
commit
e3e4bb011a
|
@ -43,8 +43,9 @@ template <> class hb_mark_as_flags_t<hb_buffer_serialize_flags_t> {};
|
||||||
|
|
||||||
enum hb_buffer_scratch_flags_t {
|
enum hb_buffer_scratch_flags_t {
|
||||||
HB_BUFFER_SCRATCH_FLAG_DEFAULT = 0x00000000u,
|
HB_BUFFER_SCRATCH_FLAG_DEFAULT = 0x00000000u,
|
||||||
HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES = 0x00000001u,
|
HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII = 0x00000001u,
|
||||||
HB_BUFFER_SCRATCH_FLAG_HAS_SPACE_FALLBACK = 0x00000002u,
|
HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES = 0x00000002u,
|
||||||
|
HB_BUFFER_SCRATCH_FLAG_HAS_SPACE_FALLBACK = 0x00000004u,
|
||||||
};
|
};
|
||||||
template <> class hb_mark_as_flags_t<hb_buffer_scratch_flags_t> {};
|
template <> class hb_mark_as_flags_t<hb_buffer_scratch_flags_t> {};
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,7 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer)
|
||||||
|
|
||||||
if (u >= 0x80)
|
if (u >= 0x80)
|
||||||
{
|
{
|
||||||
|
buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII;
|
||||||
if (unlikely (unicode->is_default_ignorable (u)))
|
if (unlikely (unicode->is_default_ignorable (u)))
|
||||||
{
|
{
|
||||||
buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES;
|
buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES;
|
||||||
|
|
|
@ -346,7 +346,8 @@ hb_ot_mirror_chars (hb_ot_shape_context_t *c)
|
||||||
static inline void
|
static inline void
|
||||||
hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c)
|
hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c)
|
||||||
{
|
{
|
||||||
if (!c->plan->has_frac)
|
if (!(c->buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII) ||
|
||||||
|
!c->plan->has_frac)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
hb_buffer_t *buffer = c->buffer;
|
hb_buffer_t *buffer = c->buffer;
|
||||||
|
|
Loading…
Reference in New Issue