Aric Stewart : usp10: Don' t return prematurely from Chaining Contextual Substitution.

Alexandre Julliard julliard at winehq.org
Mon Jun 6 15:19:09 CDT 2011


Module: wine
Branch: master
Commit: 1e115d65e09e44300481d9431da97c14d67c8449
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1e115d65e09e44300481d9431da97c14d67c8449

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon Jun  6 09:08:03 2011 -0500

usp10: Don't return prematurely from Chaining Contextual Substitution.

---

 dlls/usp10/shape.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c
index 45492f7..5ee0b6d 100644
--- a/dlls/usp10/shape.c
+++ b/dlls/usp10/shape.c
@@ -969,12 +969,12 @@ static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSU
         if (GET_BE_WORD(ccsf1->SubstFormat) == 1)
         {
             FIXME("  TODO: subtype 1 (Simple context glyph substitution)\n");
-            return -1;
+            continue;
         }
         else if (GET_BE_WORD(ccsf1->SubstFormat) == 2)
         {
             FIXME("  TODO: subtype 2 (Class-based Chaining Context Glyph Substitution)\n");
-            return -1;
+            continue;
         }
         else if (GET_BE_WORD(ccsf1->SubstFormat) == 3)
         {
@@ -997,7 +997,7 @@ static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSU
                     break;
             }
             if (k != GET_BE_WORD(ccsf3_1->BacktrackGlyphCount))
-                return -1;
+                continue;
             TRACE("Matched Backtrack\n");
 
             ccsf3_2 = (const GSUB_ChainContextSubstFormat3_2 *)(((LPBYTE)ccsf1)+sizeof(GSUB_ChainContextSubstFormat3_1) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_1->BacktrackGlyphCount)-1)));
@@ -1010,7 +1010,7 @@ static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSU
                     break;
             }
             if (k != indexGlyphs)
-                return -1;
+                continue;
             TRACE("Matched IndexGlyphs\n");
 
             ccsf3_3 = (const GSUB_ChainContextSubstFormat3_3 *)(((LPBYTE)ccsf3_2)+sizeof(GSUB_ChainContextSubstFormat3_2) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_2->InputGlyphCount)-1)));
@@ -1022,7 +1022,7 @@ static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSU
                     break;
             }
             if (k != GET_BE_WORD(ccsf3_3->LookaheadGlyphCount))
-                return -1;
+                continue;
             TRACE("Matched LookAhead\n");
 
             ccsf3_4 = (const GSUB_ChainContextSubstFormat3_4 *)(((LPBYTE)ccsf3_3)+sizeof(GSUB_ChainContextSubstFormat3_3) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_3->LookaheadGlyphCount)-1)));
@@ -1037,7 +1037,7 @@ static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSU
                 if (newIndex == -1)
                 {
                     ERR("Chain failed to generate a glyph\n");
-                    return -1;
+                    continue;
                 }
             }
             return newIndex + 1;




More information about the wine-cvs mailing list