Bug 788831 - "ASSERTION: If display lists are enabled, only painting of non-display SVG should take this code path". r=longsonr.
authorJonathan Watt <jwatt@jwatt.org>
Fri, 21 Dec 2012 10:00:39 +0000
changeset 125864 b323378d9d2764536065cb5f59310901562e1015
parent 125863 757dbace7953c5453ab08aceaea885db1ecb7879
child 125865 3c416caff855bde907fd9b2665dafee451a9d976
push id2151
push userlsblakk@mozilla.com
push dateTue, 19 Feb 2013 18:06:57 +0000
treeherdermozilla-beta@4952e88741ec [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerslongsonr
bugs788831
milestone20.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 788831 - "ASSERTION: If display lists are enabled, only painting of non-display SVG should take this code path". r=longsonr.
layout/svg/crashtests/788831-1.svg
layout/svg/crashtests/crashtests.list
layout/svg/nsSVGStopFrame.cpp
new file mode 100644
--- /dev/null
+++ b/layout/svg/crashtests/788831-1.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <pattern id="pattern" width="40" height="40"><stop/></pattern>
+  <rect id="rect" width="200" height="100"/>
+  <use xlink:href="#rect" stroke="url(#pattern)" />
+</svg>
--- a/layout/svg/crashtests/crashtests.list
+++ b/layout/svg/crashtests/crashtests.list
@@ -137,11 +137,12 @@ load 768351.svg
 load 780963-1.html
 load 757751-1.svg
 load 768087-1.html
 load 778492-1.svg
 load 779971-1.svg
 load 780764-1.svg
 load 782141-1.svg
 load 784061-1.svg
+load 788831-1.svg
 load 790072.svg
 load 791826-1.svg
 load 789390-1.html
--- a/layout/svg/nsSVGStopFrame.cpp
+++ b/layout/svg/nsSVGStopFrame.cpp
@@ -16,17 +16,21 @@
 
 typedef nsFrame  nsSVGStopFrameBase;
 
 class nsSVGStopFrame : public nsSVGStopFrameBase
 {
   friend nsIFrame*
   NS_NewSVGStopFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 protected:
-  nsSVGStopFrame(nsStyleContext* aContext) : nsSVGStopFrameBase(aContext) {}
+  nsSVGStopFrame(nsStyleContext* aContext)
+    : nsSVGStopFrameBase(aContext)
+  {
+    AddStateBits(NS_STATE_SVG_NONDISPLAY_CHILD);
+  }
 
 public:
   NS_DECL_FRAMEARENA_HELPERS
 
   // nsIFrame interface:
 #ifdef DEBUG
   NS_IMETHOD Init(nsIContent*      aContent,
                   nsIFrame*        aParent,