Aric Stewart : usp10: Correct Pre Base glyph index shifting.

Alexandre Julliard julliard at winehq.org
Fri Jun 24 13:54:01 CDT 2011


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

Author: Aric Stewart <aric at codeweavers.com>
Date:   Fri Jun 24 10:16:25 2011 -0500

usp10: Correct Pre Base glyph index shifting.

---

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

diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c
index 8152e33..c4f7db5 100644
--- a/dlls/usp10/shape.c
+++ b/dlls/usp10/shape.c
@@ -2048,20 +2048,20 @@ static void Apply_Indic_PreBase(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *psa,
 {
     INT index, nextIndex;
     INT count,g_offset;
-    INT prevCount = *pcGlyphs;
 
     count = syllable->base - syllable->start;
 
     g_offset = 0;
     index = find_consonant_halant(&pwChars[syllable->start], 0, count, lexical);
-    while (index >= 0 && index < (glyph_index->base - glyph_index->start))
+    while (index >= 0 && index + g_offset < (glyph_index->base - glyph_index->start))
     {
+        INT prevCount = *pcGlyphs;
         nextIndex = apply_GSUB_feature_to_glyph(hdc, psa, psc, pwOutGlyphs, index+glyph_index->start+g_offset, 1, pcGlyphs, feature);
         if (nextIndex > GSUB_E_NOGLYPH)
         {
             UpdateClusters(nextIndex, *pcGlyphs - prevCount, 1, cChars, pwLogClust);
+            shift_syllable_glyph_indexs(glyph_index, index + glyph_index->start + g_offset, (*pcGlyphs - prevCount));
             g_offset += (*pcGlyphs - prevCount);
-            shift_syllable_glyph_indexs(glyph_index, index + glyph_index->start, g_offset);
         }
 
         index+=2;




More information about the wine-cvs mailing list