[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
commit-queue at webkit.org
commit-queue at webkit.org
Mon Feb 21 00:06:02 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit a4264d64a8cfc8945dab26ba74bfe83914b55755
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Jan 28 01:51:51 2011 +0000
2011-01-27 Leo Yang <leo.yang at torchmobile.com.cn>
Reviewed by Dirk Schulze.
SVG Use Cycle is not detected
https://bugs.webkit.org/show_bug.cgi?id=52544
Test for indirect <use> recursion. This test passes if
no crash occurs.
* svg/custom/recursive-use2-expected.txt: Added.
* svg/custom/recursive-use2.svg: Added.
2011-01-27 Leo Yang <leo.yang at torchmobile.com.cn>
Reviewed by Dirk Schulze.
SVG Use Cycle is not detected
https://bugs.webkit.org/show_bug.cgi?id=52544
We should check if SVGUseElement::buildInstanceTree finds problem
for every child node. If it finds problem for any children we must
return immediately because otherwise the foundProblem variable may
be rewritten to false.
Test: svg/custom/recursive-use2.svg
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::buildInstanceTree):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index b50ebcf..0022c16 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2011-01-27 Leo Yang <leo.yang at torchmobile.com.cn>
+
+ Reviewed by Dirk Schulze.
+
+ SVG Use Cycle is not detected
+ https://bugs.webkit.org/show_bug.cgi?id=52544
+
+ Test for indirect <use> recursion. This test passes if
+ no crash occurs.
+
+ * svg/custom/recursive-use2-expected.txt: Added.
+ * svg/custom/recursive-use2.svg: Added.
+
2011-01-27 Zhenyao Mo <zmo at google.com>
Reviewed by Kenneth Russell.
diff --git a/LayoutTests/svg/custom/recursive-use-expected.txt b/LayoutTests/svg/custom/recursive-use2-expected.txt
similarity index 100%
copy from LayoutTests/svg/custom/recursive-use-expected.txt
copy to LayoutTests/svg/custom/recursive-use2-expected.txt
diff --git a/LayoutTests/svg/custom/recursive-use2.svg b/LayoutTests/svg/custom/recursive-use2.svg
new file mode 100644
index 0000000..0002f4d
--- /dev/null
+++ b/LayoutTests/svg/custom/recursive-use2.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <script>
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+ </script>
+
+ <g id="g1">
+ <g id="g2">
+ <use xlink:href="#e2" id="e1" />
+ </g>
+ <use xlink:href="#e3" id="e4" />
+ </g>
+
+ <use xlink:href="#g1" id="e2" />
+ <use xlink:href="#g2" id="e3" />
+ <use xlink:href="#e1" id="e5" />
+ <use xlink:href="#e2" />
+ <use xlink:href="#e3" />
+
+ <text x="10" y="30">PASS without crash.</text>
+</svg>
+
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 76d599a..a63c810 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2011-01-27 Leo Yang <leo.yang at torchmobile.com.cn>
+
+ Reviewed by Dirk Schulze.
+
+ SVG Use Cycle is not detected
+ https://bugs.webkit.org/show_bug.cgi?id=52544
+
+ We should check if SVGUseElement::buildInstanceTree finds problem
+ for every child node. If it finds problem for any children we must
+ return immediately because otherwise the foundProblem variable may
+ be rewritten to false.
+
+ Test: svg/custom/recursive-use2.svg
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::buildInstanceTree):
+
2011-01-27 Zhenyao Mo <zmo at google.com>
Reviewed by Kenneth Russell.
diff --git a/Source/WebCore/svg/SVGUseElement.cpp b/Source/WebCore/svg/SVGUseElement.cpp
index 9f43f82..c815eb5 100644
--- a/Source/WebCore/svg/SVGUseElement.cpp
+++ b/Source/WebCore/svg/SVGUseElement.cpp
@@ -716,6 +716,8 @@ void SVGUseElement::buildInstanceTree(SVGElement* target, SVGElementInstance* ta
// Enter recursion, appending new instance tree nodes to the "instance" object.
buildInstanceTree(element, instancePtr, foundProblem);
+ if (foundProblem)
+ return;
}
if (!targetHasUseTag || !newTarget)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list