From a4fd23d276085fcafcf4d3254c538435084d6c35 Mon Sep 17 00:00:00 2001 From: "tor%cs.brown.edu" Date: Mon, 15 Nov 2004 04:43:11 +0000 Subject: [PATCH] Bug 269891 - crash in stroke-dasharray sharing. r+sr=bzbarsky --- content/base/src/nsRuleNode.cpp | 4 +++- content/html/style/src/nsCSSStruct.cpp | 2 +- layout/style/nsCSSStruct.cpp | 2 +- layout/style/nsRuleNode.cpp | 4 +++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/content/base/src/nsRuleNode.cpp b/content/base/src/nsRuleNode.cpp index ea8ba7527384..b69e2128e7cc 100644 --- a/content/base/src/nsRuleNode.cpp +++ b/content/base/src/nsRuleNode.cpp @@ -1229,7 +1229,9 @@ nsRuleNode::GetSVGData(nsStyleContext* aContext) nsRuleData ruleData(eStyleStruct_SVG, mPresContext, aContext); ruleData.mSVGData = &svgData; - return WalkRuleTree(eStyleStruct_SVG, aContext, &ruleData, &svgData); + const nsStyleStruct *res = WalkRuleTree(eStyleStruct_SVG, aContext, &ruleData, &svgData); + svgData.mStrokeDasharray = nsnull; // We are sharing with some style rule. It really owns the data. + return res; } const nsStyleStruct* diff --git a/content/html/style/src/nsCSSStruct.cpp b/content/html/style/src/nsCSSStruct.cpp index 82992a15ae94..c697ae12479f 100644 --- a/content/html/style/src/nsCSSStruct.cpp +++ b/content/html/style/src/nsCSSStruct.cpp @@ -1213,7 +1213,7 @@ nsCSSSVG::nsCSSSVG(const nsCSSSVG& aCopy) mStopColor(aCopy.mStopColor), mStopOpacity(aCopy.mStopOpacity), mStroke(aCopy.mStroke), - mStrokeDasharray(aCopy.mStrokeDasharray), + mStrokeDasharray(nsnull), mStrokeDashoffset(aCopy.mStrokeDashoffset), mStrokeLinecap(aCopy.mStrokeLinecap), mStrokeLinejoin(aCopy.mStrokeLinejoin), diff --git a/layout/style/nsCSSStruct.cpp b/layout/style/nsCSSStruct.cpp index 82992a15ae94..c697ae12479f 100644 --- a/layout/style/nsCSSStruct.cpp +++ b/layout/style/nsCSSStruct.cpp @@ -1213,7 +1213,7 @@ nsCSSSVG::nsCSSSVG(const nsCSSSVG& aCopy) mStopColor(aCopy.mStopColor), mStopOpacity(aCopy.mStopOpacity), mStroke(aCopy.mStroke), - mStrokeDasharray(aCopy.mStrokeDasharray), + mStrokeDasharray(nsnull), mStrokeDashoffset(aCopy.mStrokeDashoffset), mStrokeLinecap(aCopy.mStrokeLinecap), mStrokeLinejoin(aCopy.mStrokeLinejoin), diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp index ea8ba7527384..b69e2128e7cc 100644 --- a/layout/style/nsRuleNode.cpp +++ b/layout/style/nsRuleNode.cpp @@ -1229,7 +1229,9 @@ nsRuleNode::GetSVGData(nsStyleContext* aContext) nsRuleData ruleData(eStyleStruct_SVG, mPresContext, aContext); ruleData.mSVGData = &svgData; - return WalkRuleTree(eStyleStruct_SVG, aContext, &ruleData, &svgData); + const nsStyleStruct *res = WalkRuleTree(eStyleStruct_SVG, aContext, &ruleData, &svgData); + svgData.mStrokeDasharray = nsnull; // We are sharing with some style rule. It really owns the data. + return res; } const nsStyleStruct*