diff options
Diffstat (limited to 'Build/source/libs/graphite-engine/src/segment/GrPass.cpp')
-rw-r--r-- | Build/source/libs/graphite-engine/src/segment/GrPass.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Build/source/libs/graphite-engine/src/segment/GrPass.cpp b/Build/source/libs/graphite-engine/src/segment/GrPass.cpp index 8e2048f0f6f..26eb3a3deb6 100644 --- a/Build/source/libs/graphite-engine/src/segment/GrPass.cpp +++ b/Build/source/libs/graphite-engine/src/segment/GrPass.cpp @@ -1804,6 +1804,12 @@ int GrBidiPass::Unwind(GrTableManager * ptman, else { islotIn = min(islotChanged, psstrmIn->ReadPos()); islotIn = max(islotIn - 1, 0); + while (islotIn > 0 && !StrongDir(psstrmIn->SlotAt(islotIn)->Directionality())) + { + psstrmIn->SlotAt(islotIn)->ZapDirLevel(); + islotIn--; + } + Assert(islotIn == 0 || psstrmIn->SlotAt(islotIn)->DirHasBeenProcessed()); islotOut = 0; while (islotIn > 0 && (islotOut = psstrmIn->ChunkInNext(islotIn)) == -1) --islotIn; |