Index: Source/core/svg/SVGPathSegList.cpp |
diff --git a/Source/core/svg/SVGPathSegList.cpp b/Source/core/svg/SVGPathSegList.cpp |
index 9ad9ef05f6ced615a2ef673a628bf4f9e9d64ea0..3c8de9159080290b0211fd5c0d8aa5a01fb481ed 100644 |
--- a/Source/core/svg/SVGPathSegList.cpp |
+++ b/Source/core/svg/SVGPathSegList.cpp |
@@ -82,14 +82,9 @@ const SVGPathByteStream* SVGPathSegList::byteStream() const |
m_byteStream = SVGPathByteStream::create(); |
if (!Base::isEmpty()) { |
- SVGPathByteStreamBuilder builder; |
- builder.setCurrentByteStream(m_byteStream.get()); |
- |
+ SVGPathByteStreamBuilder builder(*m_byteStream); |
SVGPathSegListSource source(begin(), end()); |
- |
- SVGPathParser parser; |
- parser.setCurrentConsumer(&builder); |
- parser.setCurrentSource(&source); |
+ SVGPathParser parser(&source, &builder); |
parser.parsePathDataFromSource(UnalteredParsing); |
} |
} |
@@ -105,15 +100,9 @@ void SVGPathSegList::updateListFromByteStream() |
Base::clear(); |
if (m_byteStream && !m_byteStream->isEmpty()) { |
- SVGPathSegListBuilder builder; |
- builder.setCurrentSVGPathElement(m_contextElement); |
- builder.setCurrentSVGPathSegList(this); |
- |
- SVGPathByteStreamSource source(m_byteStream.get()); |
- |
- SVGPathParser parser; |
- parser.setCurrentConsumer(&builder); |
- parser.setCurrentSource(&source); |
+ SVGPathSegListBuilder builder(m_contextElement, this); |
+ SVGPathByteStreamSource source(*m_byteStream); |
+ SVGPathParser parser(&source, &builder); |
parser.parsePathDataFromSource(UnalteredParsing); |
} |
@@ -132,14 +121,9 @@ PassRefPtrWillBeRawPtr<SVGPathSeg> SVGPathSegList::appendItem(PassRefPtrWillBeRa |
RefPtrWillBeRawPtr<SVGPathSeg> item = Base::appendItem(passItem); |
if (m_byteStream) { |
- SVGPathByteStreamBuilder builder; |
- builder.setCurrentByteStream(m_byteStream.get()); |
- |
+ SVGPathByteStreamBuilder builder(*m_byteStream); |
SVGPathSegListSource source(lastAppended(), end()); |
- |
- SVGPathParser parser; |
- parser.setCurrentConsumer(&builder); |
- parser.setCurrentSource(&source); |
+ SVGPathParser parser(&source, &builder); |
parser.parsePathDataFromSource(UnalteredParsing, false); |
} |
@@ -149,7 +133,7 @@ PassRefPtrWillBeRawPtr<SVGPathSeg> SVGPathSegList::appendItem(PassRefPtrWillBeRa |
String SVGPathSegList::valueAsString() const |
{ |
String string; |
- buildStringFromByteStream(byteStream(), string, UnalteredParsing); |
+ buildStringFromByteStream(*byteStream(), string, UnalteredParsing); |
return string; |
} |
@@ -158,7 +142,7 @@ void SVGPathSegList::setValueAsString(const String& string, ExceptionState& exce |
invalidateList(); |
if (!m_byteStream) |
m_byteStream = SVGPathByteStream::create(); |
- if (!buildSVGPathByteStreamFromString(string, m_byteStream.get(), UnalteredParsing)) |
+ if (!buildSVGPathByteStreamFromString(string, *m_byteStream, UnalteredParsing)) |
exceptionState.throwDOMException(SyntaxError, "Problem parsing path \"" + string + "\""); |
} |
@@ -168,8 +152,8 @@ void SVGPathSegList::add(PassRefPtrWillBeRawPtr<SVGPropertyBase> other, SVGEleme |
if (length() != otherList->length()) |
return; |
- byteStream(); // create |m_byteStream| if not exist. |
- addToSVGPathByteStream(m_byteStream.get(), otherList->byteStream()); |
+ byteStream(); // create |m_byteStream| if it does not exist. |
+ addToSVGPathByteStream(*m_byteStream, *otherList->byteStream()); |
invalidateList(); |
} |
@@ -213,23 +197,22 @@ void SVGPathSegList::calculateAnimatedValue(SVGAnimationElement* animationElemen |
OwnPtr<SVGPathByteStream> lastAnimatedStream = m_byteStream.release(); |
m_byteStream = SVGPathByteStream::create(); |
- SVGPathByteStreamBuilder builder; |
- builder.setCurrentByteStream(m_byteStream.get()); |
+ SVGPathByteStreamBuilder builder(*m_byteStream); |
- SVGPathByteStreamSource fromSource(fromStream); |
- SVGPathByteStreamSource toSource(toStream); |
+ SVGPathByteStreamSource fromSource(*fromStream); |
+ SVGPathByteStreamSource toSource(*toStream); |
- SVGPathBlender blender; |
- blender.blendAnimatedPath(percentage, &fromSource, &toSource, &builder); |
+ SVGPathBlender blender(&fromSource, &toSource, &builder); |
+ blender.blendAnimatedPath(percentage); |
// Handle additive='sum'. |
if (!fromStream->size() || (animationElement->isAdditive() && !isToAnimation)) |
- addToSVGPathByteStream(m_byteStream.get(), lastAnimatedStream.get()); |
+ addToSVGPathByteStream(*m_byteStream, *lastAnimatedStream); |
// Handle accumulate='sum'. |
if (animationElement->isAccumulated() && repeatCount) { |
const SVGPathByteStream* toAtEndOfDurationStream = toAtEndOfDuration->byteStream(); |
- addToSVGPathByteStream(m_byteStream.get(), toAtEndOfDurationStream, repeatCount); |
+ addToSVGPathByteStream(*m_byteStream, *toAtEndOfDurationStream, repeatCount); |
} |
} |