Nikolay Sivov : dwrite: Use enum members for class testing, simplify reseting to NI before applying Nx rules.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 10 11:11:09 CST 2016
Module: wine
Branch: master
Commit: e17e6e42d1b2e162892cd9e8966dfdd67d7e7163
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e17e6e42d1b2e162892cd9e8966dfdd67d7e7163
Author: Nikolay Sivov <nsivov at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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]++;
More information about the wine-cvs
mailing list