Invert the mask logic

Before, the mask in the buffer was inverted.  That is, a 0 bit meant
feature should be applied and 1 meant not applied, whereas in the
lookups, the logic was positive.

Now both are in sync.  When calling hb_buffer_add_glyph() manually,
the mask should be 1 instead of 0.
This commit is contained in:
Behdad Esfahbod 2010-05-20 14:00:57 +01:00
parent 7f411dbfd9
commit 009aad5678
3 changed files with 4 additions and 4 deletions

View File

@ -551,7 +551,7 @@ hb_buffer_reverse_clusters (hb_buffer_t *buffer)
hb_codepoint_t u; \ hb_codepoint_t u; \
const T *old_next = next; \ const T *old_next = next; \
next = UTF_NEXT (next, end, u); \ next = UTF_NEXT (next, end, u); \
hb_buffer_add_glyph (buffer, u, 0, old_next - (const T *) text); \ hb_buffer_add_glyph (buffer, u, 1, old_next - (const T *) text); \
} \ } \
} HB_STMT_END } HB_STMT_END

View File

@ -1535,7 +1535,7 @@ struct PosLookup : Lookup
while (buffer->i < buffer->len) while (buffer->i < buffer->len)
{ {
bool done; bool done;
if (~buffer->info[buffer->i].mask & mask) if (buffer->info[buffer->i].mask & mask)
{ {
done = apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL); done = apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL);
ret |= done; ret |= done;

View File

@ -830,7 +830,7 @@ struct SubstLookup : Lookup
buffer->i = 0; buffer->i = 0;
while (buffer->i < buffer->len) while (buffer->i < buffer->len)
{ {
if ((~buffer->info[buffer->i].mask & mask) && if ((buffer->info[buffer->i].mask & mask) &&
apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL)) apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL))
ret = true; ret = true;
else else
@ -846,7 +846,7 @@ struct SubstLookup : Lookup
buffer->i = buffer->len - 1; buffer->i = buffer->len - 1;
do do
{ {
if ((~buffer->info[buffer->i].mask & mask) && if ((buffer->info[buffer->i].mask & mask) &&
apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL)) apply_once (layout, buffer, NO_CONTEXT, MAX_NESTING_LEVEL))
ret = true; ret = true;
else else