[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mitz at apple.com mitz at apple.com
Wed Dec 22 15:43:20 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 129eb81d02697a6caa24de0649b6f7717b2f045d
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Nov 11 01:11:32 2010 +0000

    REGRESSION (r71566): r71566 breaks bidi-control-chars-treated-as-ZWS.html
    https://bugs.webkit.org/show_bug.cgi?id=49295
    
    Reviewed by Darin Adler.
    
    WebCore:
    
    * platform/graphics/mac/ComplexTextControllerATSUI.cpp: Reverted to r71565. Eliding bidi
    control characters from ATSUI is no longer necessary since ComplexTextController removes
    any glyphs corresponding to them.
    (WebCore::ComplexTextController::ComplexTextRun::overrideLayoutOperation):
    (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
    
    LayoutTests:
    
    * platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e5a167c..493f74f 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,12 @@
+2010-11-10  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r71566): r71566 breaks bidi-control-chars-treated-as-ZWS.html
+        https://bugs.webkit.org/show_bug.cgi?id=49295
+
+        * platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt:
+
 2010-11-10  Mihai Parparita  <mihaip at chromium.org>
 
         Unreviewed removal of unncessary Qt baseline (atfer r71781 Qt should
diff --git a/LayoutTests/platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt b/LayoutTests/platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt
index e20580a..ef2985f 100644
--- a/LayoutTests/platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt
+++ b/LayoutTests/platform/mac-leopard/fast/text/international/bidi-neutral-run-expected.txt
@@ -147,9 +147,9 @@ layer at (0,0) size 785x6378
             text run at (7,3) width 13: "\x{202C}(^"
             text run at (20,3) width 15 RTL: "\x{62C}\x{62F}"
         RenderBlock {P} at (0,1156) size 769x21
-          RenderText {#text} at (0,3) size 47x18
-            text run at (0,3) width 40 RTL: "\x{202C}(^\x{62C}\x{62F}"
-            text run at (40,3) width 7 RTL: "\x{202B}?"
+          RenderText {#text} at (0,3) size 35x18
+            text run at (0,3) width 28 RTL: "\x{202C}(^\x{62C}\x{62F}"
+            text run at (28,3) width 7 RTL: "\x{202B}?"
         RenderBlock {P} at (0,1193) size 769x19
           RenderText {#text} at (0,1) size 63x18
             text run at (0,1) width 44: "ab(^34"
@@ -448,10 +448,10 @@ layer at (0,0) size 785x6378
             text run at (20,1) width 13: "(^"
             text run at (33,1) width 0: "\x{202C}"
         RenderBlock {P} at (0,2846) size 769x21
-          RenderText {#text} at (0,3) size 38x18
-            text run at (0,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (25,3) width 13: "(^"
-            text run at (38,3) width 0: "\x{202C}"
+          RenderText {#text} at (0,3) size 26x18
+            text run at (0,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (13,3) width 13: "(^"
+            text run at (26,3) width 0: "\x{202C}"
         RenderBlock {P} at (0,2883) size 769x18
           RenderText {#text} at (0,0) size 44x18
             text run at (0,0) width 44: "\x{202A}ab12(^"
@@ -463,11 +463,11 @@ layer at (0,0) size 785x6378
             text run at (36,1) width 13: "(^"
             text run at (49,1) width 0: "\x{202C}"
         RenderBlock {P} at (0,2952) size 769x21
-          RenderText {#text} at (0,3) size 54x18
+          RenderText {#text} at (0,3) size 42x18
             text run at (0,3) width 16: "12"
-            text run at (16,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (41,3) width 13: "(^"
-            text run at (54,3) width 0: "\x{202C}"
+            text run at (16,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (29,3) width 13: "(^"
+            text run at (42,3) width 0: "\x{202C}"
         RenderBlock {P} at (0,2989) size 769x21
           RenderText {#text} at (0,3) size 44x18
             text run at (0,3) width 15: "\x{202A}ab"
@@ -481,11 +481,11 @@ layer at (0,0) size 785x6378
             text run at (36,3) width 13: "(^"
             text run at (49,3) width 0: "\x{202C}"
         RenderBlock {P} at (0,3063) size 769x21
-          RenderText {#text} at (0,3) size 54x18
+          RenderText {#text} at (0,3) size 42x18
             text run at (0,3) width 16: "\x{661}\x{662}"
-            text run at (16,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (41,3) width 13: "(^"
-            text run at (54,3) width 0: "\x{202C}"
+            text run at (16,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (29,3) width 13: "(^"
+            text run at (42,3) width 0: "\x{202C}"
         RenderBlock {P} at (0,3100) size 769x18
           RenderText {#text} at (0,0) size 20x18
             text run at (0,0) width 0: "\x{202A}"
@@ -636,13 +636,13 @@ layer at (0,0) size 785x6378
             text run at (28,3) width 16: "\x{661}\x{662}"
             text run at (44,3) width 13 RTL: "\x{627}\x{628}"
         RenderBlock {P} at (0,1119) size 769x21
-          RenderText {#text} at (0,3) size 47x18
-            text run at (0,3) width 40 RTL: "\x{202C}(^\x{62C}\x{62F}"
-            text run at (40,3) width 7: "\x{202A}?"
+          RenderText {#text} at (0,3) size 35x18
+            text run at (0,3) width 28 RTL: "\x{202C}(^\x{62C}\x{62F}"
+            text run at (28,3) width 7: "\x{202A}?"
         RenderBlock {P} at (0,1156) size 769x21
-          RenderText {#text} at (0,3) size 47x18
-            text run at (0,3) width 40 RTL: "\x{202C}(^\x{62C}\x{62F}"
-            text run at (40,3) width 7 RTL: "\x{202B}?"
+          RenderText {#text} at (0,3) size 35x18
+            text run at (0,3) width 28 RTL: "\x{202C}(^\x{62C}\x{62F}"
+            text run at (28,3) width 7 RTL: "\x{202B}?"
         RenderBlock {P} at (0,1193) size 769x19
           RenderText {#text} at (0,1) size 63x18
             text run at (0,1) width 7: "z"
@@ -940,10 +940,10 @@ layer at (0,0) size 785x6378
             text run at (0,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}"
             text run at (20,1) width 13: "(^"
         RenderBlock {P} at (0,2846) size 769x21
-          RenderText {#text} at (0,3) size 38x18
+          RenderText {#text} at (0,3) size 26x18
             text run at (0,3) width 0 RTL: "\x{202C}"
-            text run at (0,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (25,3) width 13: "(^"
+            text run at (0,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (13,3) width 13: "(^"
         RenderBlock {P} at (0,2883) size 769x18
           RenderText {#text} at (0,0) size 44x18
             text run at (0,0) width 0 RTL: "\x{202C}"
@@ -955,11 +955,11 @@ layer at (0,0) size 785x6378
             text run at (16,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}"
             text run at (36,1) width 13: "(^"
         RenderBlock {P} at (0,2952) size 769x21
-          RenderText {#text} at (0,3) size 54x18
+          RenderText {#text} at (0,3) size 42x18
             text run at (0,3) width 0 RTL: "\x{202C}"
             text run at (0,3) width 16: "12"
-            text run at (16,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (41,3) width 13: "(^"
+            text run at (16,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (29,3) width 13: "(^"
         RenderBlock {P} at (0,2989) size 769x21
           RenderText {#text} at (0,3) size 44x18
             text run at (0,3) width 0 RTL: "\x{202C}"
@@ -973,11 +973,11 @@ layer at (0,0) size 785x6378
             text run at (16,3) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}"
             text run at (36,3) width 13: "(^"
         RenderBlock {P} at (0,3063) size 769x21
-          RenderText {#text} at (0,3) size 54x18
+          RenderText {#text} at (0,3) size 42x18
             text run at (0,3) width 0 RTL: "\x{202C}"
             text run at (0,3) width 16: "\x{661}\x{662}"
-            text run at (16,3) width 25 RTL: "\x{202A}\x{627}\x{628}"
-            text run at (41,3) width 13: "(^"
+            text run at (16,3) width 13 RTL: "\x{202A}\x{627}\x{628}"
+            text run at (29,3) width 13: "(^"
         RenderBlock {P} at (0,3100) size 769x18
           RenderText {#text} at (0,0) size 20x18
             text run at (0,0) width 0 RTL: "\x{202C}"
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index ad025e5..f581b59 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-11-10  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r71566): r71566 breaks bidi-control-chars-treated-as-ZWS.html
+        https://bugs.webkit.org/show_bug.cgi?id=49295
+
+        * platform/graphics/mac/ComplexTextControllerATSUI.cpp: Reverted to r71565. Eliding bidi
+        control characters from ATSUI is no longer necessary since ComplexTextController removes
+        any glyphs corresponding to them.
+        (WebCore::ComplexTextController::ComplexTextRun::overrideLayoutOperation):
+        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
+
 2010-11-10  Pascal Massimino  <pascal.massimino at gmail.com>
 
         Reviewed by Adam Barth.
diff --git a/WebCore/platform/graphics/mac/ComplexTextController.h b/WebCore/platform/graphics/mac/ComplexTextController.h
index 42e1d81..85407c7 100644
--- a/WebCore/platform/graphics/mac/ComplexTextController.h
+++ b/WebCore/platform/graphics/mac/ComplexTextController.h
@@ -140,7 +140,6 @@ private:
         const CGSize* m_advances;
 #if USE(ATSUI)
         bool m_directionalOverride;
-        CFIndex m_indexOffset;
 #endif
         bool m_isMonotonic;
     };
diff --git a/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp b/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp
index 9883baa..1656854 100644
--- a/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp
+++ b/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp
@@ -30,9 +30,9 @@
 #include "ShapeArabic.h"
 
 #ifdef __LP64__
+// ATSUTextInserted() is SPI in 64-bit.
 extern "C" {
 OSStatus ATSUTextInserted(ATSUTextLayout iTextLayout,  UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength);
-OSStatus ATSUTextDeleted(ATSUTextLayout iTextLayout,  UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength);
 }
 #endif
 
@@ -55,11 +55,12 @@ OSStatus ComplexTextController::ComplexTextRun::overrideLayoutOperation(ATSULayo
 
     count--;
     ItemCount j = 0;
-    CFIndex indexOffset = complexTextRun->m_indexOffset;
+    CFIndex indexOffset = 0;
 
     if (complexTextRun->m_directionalOverride) {
         j++;
         count -= 2;
+        indexOffset = -1;
     }
 
     complexTextRun->m_glyphCount = count;
@@ -145,7 +146,6 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(ATSUTextLayout atsuTextLay
     , m_stringLocation(stringLocation)
     , m_stringLength(stringLength)
     , m_directionalOverride(directionalOverride)
-    , m_indexOffset(0)
     , m_isMonotonic(true)
 {
     OSStatus status;
@@ -188,34 +188,6 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(ATSUTextLayout atsuTextLay
         ATSUTextMoved(atsuTextLayout, substituteCharacters.data());
     }
 
-    // Remove the leading character if it is one of explicit Unicode bidi control characters.
-    // Explicit Unicode bidi control character, if present, is always the leading
-    // character in a run. And it could be the leading character in a LTR run.
-    // For example, "a&#x202b;x!&#202c;y", the last run "&#x202c;y" is a LTR run
-    // and begins with an explicit Unicode bidi control character.
-    if (stringLength > 0) {
-        UChar leadingCharacter;
-        if (substituteCharacters.isEmpty())
-            leadingCharacter = characters[0];
-        else
-            leadingCharacter = substituteCharacters[0];
-        if (leadingCharacter == leftToRightEmbed
-            || leadingCharacter == leftToRightOverride 
-            || leadingCharacter == rightToLeftEmbed
-            || leadingCharacter == rightToLeftOverride
-            || leadingCharacter == popDirectionalFormatting) {
-            if (substituteCharacters.isEmpty()) {
-                substituteCharacters.grow(stringLength - 1);
-                memcpy(substituteCharacters.data(), characters + 1, (stringLength - 1) * sizeof(UChar));
-                ATSUTextMoved(atsuTextLayout, substituteCharacters.data());
-            } else {
-                substituteCharacters.remove(0);
-                ATSUTextDeleted(atsuTextLayout, 0, 1);
-            }
-            m_indexOffset++;
-        }
-    }
-
     if (directionalOverride) {
         UChar override = ltr ? leftToRightOverride : rightToLeftOverride;
         if (substituteCharacters.isEmpty()) {
@@ -229,7 +201,6 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(ATSUTextLayout atsuTextLay
             substituteCharacters.append(popDirectionalFormatting);
         }
         ATSUTextInserted(atsuTextLayout, 0, 2);
-        m_indexOffset--;
     }
 
     ATSULayoutOperationOverrideSpecifier overrideSpecifier;
@@ -243,7 +214,7 @@ ComplexTextController::ComplexTextRun::ComplexTextRun(ATSUTextLayout atsuTextLay
     status = ATSUSetLayoutControls(atsuTextLayout, 3, tags, sizes, values);
 
     ItemCount boundsCount;
-    status = ATSUGetGlyphBounds(atsuTextLayout, 0, 0, 0, kATSUToTextEnd, kATSUseFractionalOrigins, 0, 0, &boundsCount);
+    status = ATSUGetGlyphBounds(atsuTextLayout, 0, 0, 0, m_stringLength, kATSUseFractionalOrigins, 0, 0, &boundsCount);
 
     status = ATSUDisposeTextLayout(atsuTextLayout);
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list