Module: wine Branch: master Commit: e17e6e42d1b2e162892cd9e8966dfdd67d7e7163 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e17e6e42d1b2e162892cd9e896...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Feb 10 13:10:48 2016 +0300
dwrite: Use enum members for class testing, simplify reseting to NI before applying Nx rules.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dwrite/bidi.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/dwrite/bidi.c b/dlls/dwrite/bidi.c index abf3604..16ca25f 100644 --- a/dlls/dwrite/bidi.c +++ b/dlls/dwrite/bidi.c @@ -759,16 +759,18 @@ static void bidi_resolve_neutrals(IsolatedRun *run)
/* Translate isolates into NI */ for (i = 0; i < run->length; i++) { - if (bidi_is_isolate(*run->item[i].class)) - *run->item[i].class = NI; - switch (*run->item[i].class) { case B: case S: - case WS: *run->item[i].class = NI; + case WS: + case FSI: + case LRI: + case RLI: + case PDI: *run->item[i].class = NI; }
- ASSERT(*run->item[i].class < 5 || *run->item[i].class == BN); /* "Only NI, L, R, AN, EN and BN are allowed" */ + /* "Only NI, L, R, AN, EN and BN are allowed" */ + ASSERT(*run->item[i].class <= EN || *run->item[i].class == BN); }
/* N0: Skipping bracketed pairs for now */ @@ -900,8 +902,8 @@ static void bidi_resolve_implicit(const UINT8 *classes, UINT8 *levels, int sos, if (classes[i] == BN) continue;
- ASSERT(classes[i] > 0); /* "No Neutrals allowed to survive here." */ - ASSERT(classes[i] < 5); /* "Out of range." */ + ASSERT(classes[i] != ON); /* "No Neutrals allowed to survive here." */ + ASSERT(classes[i] <= EN); /* "Out of range." */
if (odd(levels[i]) && (classes[i] == L || classes[i] == EN || classes[i] == AN)) levels[i]++;