[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‫x!Êc;y", the last run "‬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