[morx] Remove mark_set from Insertion
text-rendering-tests test MORX-32 shows that for Insertion, an unset mark is treated as mark set at 0. This is unlike the Reordering lookup where un unset mark performs nothing. Fixes MORX-32.
This commit is contained in:
parent
0d18ec5467
commit
f4072e8cb8
|
@ -592,7 +592,6 @@ struct InsertionSubtable
|
||||||
hb_aat_apply_context_t *c_) :
|
hb_aat_apply_context_t *c_) :
|
||||||
ret (false),
|
ret (false),
|
||||||
c (c_),
|
c (c_),
|
||||||
mark_set (false),
|
|
||||||
mark (0),
|
mark (0),
|
||||||
insertionAction (table+table->insertionAction) {}
|
insertionAction (table+table->insertionAction) {}
|
||||||
|
|
||||||
|
@ -608,7 +607,7 @@ struct InsertionSubtable
|
||||||
hb_buffer_t *buffer = driver->buffer;
|
hb_buffer_t *buffer = driver->buffer;
|
||||||
unsigned int flags = entry->flags;
|
unsigned int flags = entry->flags;
|
||||||
|
|
||||||
if (entry->data.markedInsertIndex != 0xFFFF && mark_set)
|
if (entry->data.markedInsertIndex != 0xFFFF)
|
||||||
{
|
{
|
||||||
unsigned int count = (flags & MarkedInsertCount);
|
unsigned int count = (flags & MarkedInsertCount);
|
||||||
unsigned int start = entry->data.markedInsertIndex;
|
unsigned int start = entry->data.markedInsertIndex;
|
||||||
|
@ -669,10 +668,7 @@ struct InsertionSubtable
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SetMark)
|
if (flags & SetMark)
|
||||||
{
|
|
||||||
mark_set = true;
|
|
||||||
mark = buffer->out_len;
|
mark = buffer->out_len;
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -681,7 +677,6 @@ struct InsertionSubtable
|
||||||
bool ret;
|
bool ret;
|
||||||
private:
|
private:
|
||||||
hb_aat_apply_context_t *c;
|
hb_aat_apply_context_t *c;
|
||||||
bool mark_set;
|
|
||||||
unsigned int mark;
|
unsigned int mark;
|
||||||
const UnsizedArrayOf<GlyphID> &insertionAction;
|
const UnsizedArrayOf<GlyphID> &insertionAction;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue