Title: [187824] branches/safari-601.1-branch
- Revision
- 187824
- Author
- matthew_han...@apple.com
- Date
- 2015-08-04 00:01:52 -0700 (Tue, 04 Aug 2015)
Log Message
Merge r187685. rdar://problem/21775336
Modified Paths
Added Paths
Diff
Modified: branches/safari-601.1-branch/LayoutTests/ChangeLog (187823 => 187824)
--- branches/safari-601.1-branch/LayoutTests/ChangeLog 2015-08-04 07:01:48 UTC (rev 187823)
+++ branches/safari-601.1-branch/LayoutTests/ChangeLog 2015-08-04 07:01:52 UTC (rev 187824)
@@ -1,5 +1,20 @@
2015-08-03 Matthew Hanson <matthew_han...@apple.com>
+ Merge r187685. rdar://problem/21775336
+
+ 2015-07-31 Myles C. Maxfield <mmaxfi...@apple.com>
+
+ [SVG -> OTF Converter] Crash when converting Arabic fonts
+ https://bugs.webkit.org/show_bug.cgi?id=147510
+
+ Reviewed by Anders Carlsson.
+
+ * fast/text/arabic-duplicate-glyph-font-expected.txt: Added.
+ * fast/text/arabic-duplicate-glyph-font.html: Added.
+ * fast/text/resources/arabic-duplicate-glyph-font.svg: Added.
+
+2015-08-03 Matthew Hanson <matthew_han...@apple.com>
+
Merge r187778. rdar://problem/22098457
2015-08-03 Brady Eidson <beid...@apple.com>
Added: branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font-expected.txt (0 => 187824)
--- branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font-expected.txt (rev 0)
+++ branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font-expected.txt 2015-08-04 07:01:52 UTC (rev 187824)
@@ -0,0 +1,2 @@
+This test makes sure that SVGToOTFFontConverter::compareCodepointsLexicographically() is transitive. The test passes if there is no crash.
+ﻟﻠﻪ
Added: branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font.html (0 => 187824)
--- branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font.html (rev 0)
+++ branches/safari-601.1-branch/LayoutTests/fast/text/arabic-duplicate-glyph-font.html 2015-08-04 07:01:52 UTC (rev 187824)
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+@font-face {
+ font-family: "arabicfont";
+ src: url("resources/arabic-duplicate-glyph-font.svg") format("svg");
+}
+</style>
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+</head>
+<body>
+This test makes sure that SVGToOTFFontConverter::compareCodepointsLexicographically() is transitive. The test passes if there is no crash.
+<div style="font-family: arabicfont;">ﻟﻠﻪ</div>
+</body>
+</html>
Added: branches/safari-601.1-branch/LayoutTests/fast/text/resources/arabic-duplicate-glyph-font.svg (0 => 187824)
--- branches/safari-601.1-branch/LayoutTests/fast/text/resources/arabic-duplicate-glyph-font.svg (rev 0)
+++ branches/safari-601.1-branch/LayoutTests/fast/text/resources/arabic-duplicate-glyph-font.svg 2015-08-04 07:01:52 UTC (rev 187824)
@@ -0,0 +1,90 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs>
+<font horiz-adv-x='1024' >
+ <font-face
+ font-family="Font"
+ font-weight="300"
+ font-stretch="normal"
+ units-per-em="2048"
+ ascent="1374"
+ descent="-674"
+ x-height="680"
+ cap-height="956"
+ bbox="-127 -672 1872 1855"
+ underline-thickness="66"
+ underline-position="-147"
+ unicode-range="U+0020-FEFC"
+ />
+<missing-glyph horiz-adv-x="2048" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ <glyph unicode="ﻟﻠﻪ" horiz-adv-x="1235" arabic-form="isolated" d="M0 0" />
+ </font>
+</defs></svg>
Modified: branches/safari-601.1-branch/Source/WebCore/ChangeLog (187823 => 187824)
--- branches/safari-601.1-branch/Source/WebCore/ChangeLog 2015-08-04 07:01:48 UTC (rev 187823)
+++ branches/safari-601.1-branch/Source/WebCore/ChangeLog 2015-08-04 07:01:52 UTC (rev 187824)
@@ -1,5 +1,23 @@
2015-08-03 Matthew Hanson <matthew_han...@apple.com>
+ Merge r187685. rdar://problem/21775336
+
+ 2015-07-31 Myles C. Maxfield <mmaxfi...@apple.com>
+
+ [SVG -> OTF Converter] Crash when converting Arabic fonts
+ https://bugs.webkit.org/show_bug.cgi?id=147510
+
+ Reviewed by Anders Carlsson.
+
+ SVGToOTFFontConverter::compareCodepointsLexicographically() wasn't transitive.
+
+ Test: fast/text/arabic-duplicate-glyph-font.html
+
+ * svg/SVGToOTFFontConversion.cpp:
+ (WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
+
+2015-08-03 Matthew Hanson <matthew_han...@apple.com>
+
Merge r187545. rdar://problem/21893047
2015-07-29 Dean Jackson <d...@apple.com>
Modified: branches/safari-601.1-branch/Source/WebCore/svg/SVGToOTFFontConversion.cpp (187823 => 187824)
--- branches/safari-601.1-branch/Source/WebCore/svg/SVGToOTFFontConversion.cpp 2015-08-04 07:01:48 UTC (rev 187823)
+++ branches/safari-601.1-branch/Source/WebCore/svg/SVGToOTFFontConversion.cpp 2015-08-04 07:01:52 UTC (rev 187824)
@@ -1312,8 +1312,6 @@
auto codePoints2 = StringView(data2.codepoints).codePoints();
auto iterator1 = codePoints1.begin();
auto iterator2 = codePoints2.begin();
- unsigned length1 = data1.codepoints.length();
- unsigned length2 = data2.codepoints.length();
while (iterator1 != codePoints1.end() && iterator2 != codePoints2.end()) {
UChar32 codepoint1, codepoint2;
codepoint1 = *iterator1;
@@ -1328,10 +1326,12 @@
++iterator2;
}
- if (length1 == length2 && data1.glyphElement
- && equalIgnoringCase(data1.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated"))
- return true;
- return length1 < length2;
+ if (iterator1 == codePoints1.end() && iterator2 == codePoints2.end()) {
+ bool firstIsIsolated = data1.glyphElement && equalIgnoringCase(data1.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
+ bool secondIsIsolated = data2.glyphElement && equalIgnoringCase(data2.glyphElement->fastGetAttribute(SVGNames::arabic_formAttr), "isolated");
+ return firstIsIsolated && !secondIsIsolated;
+ }
+ return iterator1 == codePoints1.end();
}
static void populateEmptyGlyphCharString(Vector<char, 17>& o, unsigned unitsPerEm)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes