[aat] Adjust unsafe-to-break logic some more

I believe I'm happy with it now.
This commit is contained in:
Behdad Esfahbod 2018-02-06 11:48:04 -05:00
parent f49256d80f
commit 2971e9da49
1 changed files with 4 additions and 4 deletions

View File

@ -639,10 +639,10 @@ struct StateTableDriver
* go differently if we start from state 0 here. */ * go differently if we start from state 0 here. */
if (state && buffer->idx) if (state && buffer->idx)
{ {
/* If starting here at state 0 has the exact same entry, it's safe /* If there's no action and we're just epsilon-transitioning to state 0,
* to break as before as far as we are concerned. */ * safe to break. */
const Entry<EntryData> *start_entry = machine.get_entryZ (0, klass); if (c->is_actionable (this, entry) ||
if (memcmp (start_entry, entry, sizeof (*entry))) !(entry->newState == 0 && entry->flags == context_t::DontAdvance))
buffer->unsafe_to_break (buffer->idx - 1, buffer->idx + 1); buffer->unsafe_to_break (buffer->idx - 1, buffer->idx + 1);
} }