<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[181345] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/181345">181345</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-03-10 13:39:50 -0700 (Tue, 10 Mar 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Remove PassRefPtr from svg/properties classes.
https://bugs.webkit.org/show_bug.cgi?id=142063.
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-03-10
Reviewed by Darin Adler.
Source/WebCore:
Remove PassRefPtr from svg/properties classes. All the return types and
the local variables should be RefPtr. If we are sure the pointer can't
be null, we use Ref instead.
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
(WebCore::SVGMarkerElement::orientTypeAnimated):
* svg/SVGMarkerElement.h:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
(WebCore::SVGPathElement::pathSegList):
(WebCore::SVGPathElement::animatedPathSegList):
* svg/SVGPathElement.h:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
(WebCore::SVGPolyElement::points):
(WebCore::SVGPolyElement::animatedPoints):
* svg/SVGPolyElement.h:
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
(WebCore::SVGTextContentElement::textLengthAnimated):
* svg/SVGTextContentElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::transform):
(WebCore::SVGViewSpec::viewBoxAnimated):
(WebCore::SVGViewSpec::preserveAspectRatioAnimated):
(WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
(WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
(WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
* svg/SVGViewSpec.h:
* svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
(WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::create):
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
(WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
* svg/properties/SVGAnimatedProperty.h:
(WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
* svg/properties/SVGAnimatedPropertyMacros.h:
* svg/properties/SVGAnimatedPropertyTearOff.h:
(WebCore::SVGAnimatedPropertyTearOff::create):
* svg/properties/SVGAnimatedStaticPropertyTearOff.h:
(WebCore::SVGAnimatedStaticPropertyTearOff::create):
* svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
(WebCore::SVGAnimatedTransformListPropertyTearOff::create):
* svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::initializeValuesAndWrappers):
(WebCore::SVGListProperty::getItemValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::replaceItemValuesAndWrappers):
(WebCore::SVGListProperty::removeItemValuesAndWrappers):
(WebCore::SVGListProperty::appendItemValuesAndWrappers):
* svg/properties/SVGListPropertyTearOff.h:
(WebCore::SVGListPropertyTearOff::create):
(WebCore::SVGListPropertyTearOff::initialize):
(WebCore::SVGListPropertyTearOff::getItem):
(WebCore::SVGListPropertyTearOff::insertItemBefore):
(WebCore::SVGListPropertyTearOff::replaceItem):
(WebCore::SVGListPropertyTearOff::removeItem):
(WebCore::SVGListPropertyTearOff::appendItem):
* svg/properties/SVGPathSegListPropertyTearOff.cpp:
(WebCore::SVGPathSegListPropertyTearOff::getItem):
(WebCore::SVGPathSegListPropertyTearOff::replaceItem):
(WebCore::SVGPathSegListPropertyTearOff::removeItem):
* svg/properties/SVGPathSegListPropertyTearOff.h:
(WebCore::SVGPathSegListPropertyTearOff::create):
(WebCore::SVGPathSegListPropertyTearOff::initialize):
(WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
(WebCore::SVGPathSegListPropertyTearOff::appendItem):
* svg/properties/SVGPropertyInfo.h:
* svg/properties/SVGStaticListPropertyTearOff.h:
(WebCore::SVGStaticListPropertyTearOff::create):
* svg/properties/SVGStaticPropertyTearOff.h:
(WebCore::SVGStaticPropertyTearOff::create):
* svg/properties/SVGTransformListPropertyTearOff.h:
(WebCore::SVGTransformListPropertyTearOff::create):
(WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
(WebCore::SVGTransformListPropertyTearOff::consolidate):
Source/WTF:
* wtf/Ref.h:
(WTF::static_reference_cast): Add a stat_cast function to Ref<>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfRefh">trunk/Source/WTF/wtf/Ref.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoresvgSVGMarkerElementcpp">trunk/Source/WebCore/svg/SVGMarkerElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGMarkerElementh">trunk/Source/WebCore/svg/SVGMarkerElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPathElementcpp">trunk/Source/WebCore/svg/SVGPathElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPathElementh">trunk/Source/WebCore/svg/SVGPathElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPolyElementcpp">trunk/Source/WebCore/svg/SVGPolyElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPolyElementh">trunk/Source/WebCore/svg/SVGPolyElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGTextContentElementcpp">trunk/Source/WebCore/svg/SVGTextContentElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGTextContentElementh">trunk/Source/WebCore/svg/SVGTextContentElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGViewSpeccpp">trunk/Source/WebCore/svg/SVGViewSpec.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGViewSpech">trunk/Source/WebCore/svg/SVGViewSpec.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedEnumerationPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedPathSegListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyh">trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyMacrosh">trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyMacros.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedStaticPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGAnimatedTransformListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGListPropertyh">trunk/Source/WebCore/svg/properties/SVGListProperty.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGPathSegListPropertyTearOffcpp">trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGPathSegListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGPropertyInfoh">trunk/Source/WebCore/svg/properties/SVGPropertyInfo.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGStaticListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGStaticPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h</a></li>
<li><a href="#trunkSourceWebCoresvgpropertiesSVGTransformListPropertyTearOffh">trunk/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WTF/ChangeLog        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-03-10 Said Abou-Hallawa <sabouhallawa@apple.com>
+
+ Remove PassRefPtr from svg/properties classes.
+ https://bugs.webkit.org/show_bug.cgi?id=142063.
+
+ Reviewed by Darin Adler.
+
+ * wtf/Ref.h:
+ (WTF::static_reference_cast): Add a stat_cast function to Ref<>.
+
</ins><span class="cx"> 2015-03-10 Mark Lam <mark.lam@apple.com>
</span><span class="cx">
</span><span class="cx"> [Win] JSC Build Warnings Need to be Resolved.
</span></span></pre></div>
<a id="trunkSourceWTFwtfRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Ref.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Ref.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WTF/wtf/Ref.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -148,6 +148,16 @@
</span><span class="cx"> return oldReference;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+template<typename T, typename U> inline Ref<T> static_reference_cast(Ref<U>& reference)
+{
+ return Ref<T>(static_cast<T&>(reference.get()));
+}
+
+template<typename T, typename U> inline Ref<T> static_reference_cast(const Ref<U>& reference)
+{
+ return Ref<T>(static_cast<T&>(reference.copyRef().get()));
+}
+
</ins><span class="cx"> template <typename T>
</span><span class="cx"> struct GetPtrHelper<Ref<T>> {
</span><span class="cx"> typedef T* PtrType;
</span><span class="lines">@@ -166,5 +176,6 @@
</span><span class="cx">
</span><span class="cx"> using WTF::Ref;
</span><span class="cx"> using WTF::adoptRef;
</span><ins>+using WTF::static_reference_cast;
</ins><span class="cx">
</span><span class="cx"> #endif // WTF_Ref_h
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/ChangeLog        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -1,3 +1,89 @@
</span><ins>+2015-03-10 Said Abou-Hallawa <sabouhallawa@apple.com>
+
+ Remove PassRefPtr from svg/properties classes.
+ https://bugs.webkit.org/show_bug.cgi?id=142063.
+
+ Reviewed by Darin Adler.
+
+ Remove PassRefPtr from svg/properties classes. All the return types and
+ the local variables should be RefPtr. If we are sure the pointer can't
+ be null, we use Ref instead.
+
+ * svg/SVGMarkerElement.cpp:
+ (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
+ (WebCore::SVGMarkerElement::orientTypeAnimated):
+ * svg/SVGMarkerElement.h:
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::lookupOrCreateDWrapper):
+ (WebCore::SVGPathElement::pathSegList):
+ (WebCore::SVGPathElement::animatedPathSegList):
+ * svg/SVGPathElement.h:
+ * svg/SVGPolyElement.cpp:
+ (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
+ (WebCore::SVGPolyElement::points):
+ (WebCore::SVGPolyElement::animatedPoints):
+ * svg/SVGPolyElement.h:
+ * svg/SVGTextContentElement.cpp:
+ (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
+ (WebCore::SVGTextContentElement::textLengthAnimated):
+ * svg/SVGTextContentElement.h:
+ * svg/SVGViewSpec.cpp:
+ (WebCore::SVGViewSpec::transform):
+ (WebCore::SVGViewSpec::viewBoxAnimated):
+ (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
+ (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
+ (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
+ (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
+ * svg/SVGViewSpec.h:
+ * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
+ (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
+ * svg/properties/SVGAnimatedListPropertyTearOff.h:
+ (WebCore::SVGAnimatedListPropertyTearOff::create):
+ * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
+ (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
+ * svg/properties/SVGAnimatedProperty.h:
+ (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
+ * svg/properties/SVGAnimatedPropertyMacros.h:
+ * svg/properties/SVGAnimatedPropertyTearOff.h:
+ (WebCore::SVGAnimatedPropertyTearOff::create):
+ * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
+ (WebCore::SVGAnimatedStaticPropertyTearOff::create):
+ * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
+ (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
+ * svg/properties/SVGListProperty.h:
+ (WebCore::SVGListProperty::initializeValuesAndWrappers):
+ (WebCore::SVGListProperty::getItemValuesAndWrappers):
+ (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
+ (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
+ (WebCore::SVGListProperty::removeItemValuesAndWrappers):
+ (WebCore::SVGListProperty::appendItemValuesAndWrappers):
+ * svg/properties/SVGListPropertyTearOff.h:
+ (WebCore::SVGListPropertyTearOff::create):
+ (WebCore::SVGListPropertyTearOff::initialize):
+ (WebCore::SVGListPropertyTearOff::getItem):
+ (WebCore::SVGListPropertyTearOff::insertItemBefore):
+ (WebCore::SVGListPropertyTearOff::replaceItem):
+ (WebCore::SVGListPropertyTearOff::removeItem):
+ (WebCore::SVGListPropertyTearOff::appendItem):
+ * svg/properties/SVGPathSegListPropertyTearOff.cpp:
+ (WebCore::SVGPathSegListPropertyTearOff::getItem):
+ (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
+ (WebCore::SVGPathSegListPropertyTearOff::removeItem):
+ * svg/properties/SVGPathSegListPropertyTearOff.h:
+ (WebCore::SVGPathSegListPropertyTearOff::create):
+ (WebCore::SVGPathSegListPropertyTearOff::initialize):
+ (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
+ (WebCore::SVGPathSegListPropertyTearOff::appendItem):
+ * svg/properties/SVGPropertyInfo.h:
+ * svg/properties/SVGStaticListPropertyTearOff.h:
+ (WebCore::SVGStaticListPropertyTearOff::create):
+ * svg/properties/SVGStaticPropertyTearOff.h:
+ (WebCore::SVGStaticPropertyTearOff::create):
+ * svg/properties/SVGTransformListPropertyTearOff.h:
+ (WebCore::SVGTransformListPropertyTearOff::create):
+ (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
+ (WebCore::SVGTransformListPropertyTearOff::consolidate):
+
</ins><span class="cx"> 2015-03-10 Timothy Horton <timothy_horton@apple.com>
</span><span class="cx">
</span><span class="cx"> Fix the build
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGMarkerElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGMarkerElement.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGMarkerElement.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGMarkerElement.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx"> ownerType.m_orientType.synchronize(&ownerType, orientTypePropertyInfo()->attributeName, autoString);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGMarkerElement::lookupOrCreateOrientTypeWrapper(SVGElement* contextElement)
</del><ins>+Ref<SVGAnimatedProperty> SVGMarkerElement::lookupOrCreateOrientTypeWrapper(SVGElement* contextElement)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><span class="cx"> SVGMarkerElement& ownerType = downcast<SVGMarkerElement>(*contextElement);
</span><span class="lines">@@ -258,10 +258,10 @@
</span><span class="cx"> return m_orientType.value;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>> SVGMarkerElement::orientTypeAnimated()
</del><ins>+Ref<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>> SVGMarkerElement::orientTypeAnimated()
</ins><span class="cx"> {
</span><span class="cx"> m_orientType.shouldSynchronize = true;
</span><del>- return static_pointer_cast<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>>(lookupOrCreateOrientTypeWrapper(this));
</del><ins>+ return static_reference_cast<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>>(lookupOrCreateOrientTypeWrapper(this));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGMarkerElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGMarkerElement.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGMarkerElement.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGMarkerElement.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -157,11 +157,11 @@
</span><span class="cx"> public:
</span><span class="cx"> // Custom 'orientType' property.
</span><span class="cx"> static void synchronizeOrientType(SVGElement* contextElement);
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreateOrientTypeWrapper(SVGElement* contextElement);
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreateOrientTypeWrapper(SVGElement* contextElement);
</ins><span class="cx"> SVGMarkerOrientType& orientType() const;
</span><span class="cx"> SVGMarkerOrientType& orientTypeBaseValue() const { return m_orientType.value; }
</span><span class="cx"> void setOrientTypeBaseValue(const SVGMarkerOrientType& type) { m_orientType.value = type; }
</span><del>- PassRefPtr<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>> orientTypeAnimated();
</del><ins>+ Ref<SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>> orientTypeAnimated();
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> mutable SVGSynchronizableAnimatedProperty<SVGMarkerOrientType> m_orientType;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPathElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPathElement.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPathElement.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGPathElement.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -311,13 +311,13 @@
</span><span class="cx"> return static_cast<SVGAnimatedPathSegListPropertyTearOff*>(property)->animatedPathByteStream();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGPathElement::lookupOrCreateDWrapper(SVGElement* contextElement)
</del><ins>+Ref<SVGAnimatedProperty> SVGPathElement::lookupOrCreateDWrapper(SVGElement* contextElement)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><span class="cx"> SVGPathElement& ownerType = downcast<SVGPathElement>(*contextElement);
</span><span class="cx">
</span><span class="cx"> if (SVGAnimatedProperty* property = SVGAnimatedProperty::lookupWrapper<SVGPathElement, SVGAnimatedPathSegListPropertyTearOff>(&ownerType, dPropertyInfo()))
</span><del>- return property;
</del><ins>+ return *property;
</ins><span class="cx">
</span><span class="cx"> // Build initial SVGPathSegList.
</span><span class="cx"> buildSVGPathSegListFromByteStream(ownerType.m_pathByteStream.get(), &ownerType, ownerType.m_pathSegList.value, UnalteredParsing);
</span><span class="lines">@@ -338,7 +338,7 @@
</span><span class="cx"> SVGPathSegListPropertyTearOff* SVGPathElement::pathSegList()
</span><span class="cx"> {
</span><span class="cx"> m_pathSegList.shouldSynchronize = true;
</span><del>- return static_cast<SVGPathSegListPropertyTearOff*>(static_pointer_cast<SVGAnimatedPathSegListPropertyTearOff>(lookupOrCreateDWrapper(this))->baseVal());
</del><ins>+ return static_cast<SVGPathSegListPropertyTearOff*>(static_reference_cast<SVGAnimatedPathSegListPropertyTearOff>(lookupOrCreateDWrapper(this))->baseVal());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SVGPathSegListPropertyTearOff* SVGPathElement::normalizedPathSegList()
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx"> {
</span><span class="cx"> m_pathSegList.shouldSynchronize = true;
</span><span class="cx"> m_isAnimValObserved = true;
</span><del>- return static_cast<SVGPathSegListPropertyTearOff*>(static_pointer_cast<SVGAnimatedPathSegListPropertyTearOff>(lookupOrCreateDWrapper(this))->animVal());
</del><ins>+ return static_cast<SVGPathSegListPropertyTearOff*>(static_reference_cast<SVGAnimatedPathSegListPropertyTearOff>(lookupOrCreateDWrapper(this))->animVal());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SVGPathSegListPropertyTearOff* SVGPathElement::animatedNormalizedPathSegList()
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPathElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPathElement.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPathElement.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGPathElement.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">
</span><span class="cx"> // Custom 'd' property
</span><span class="cx"> static void synchronizeD(SVGElement* contextElement);
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreateDWrapper(SVGElement* contextElement);
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreateDWrapper(SVGElement* contextElement);
</ins><span class="cx">
</span><span class="cx"> BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGPathElement)
</span><span class="cx"> DECLARE_ANIMATED_NUMBER(PathLength, pathLength)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPolyElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPolyElement.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPolyElement.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGPolyElement.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx"> ownerType.m_points.synchronize(&ownerType, pointsPropertyInfo()->attributeName, ownerType.m_points.value.valueAsString());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGPolyElement::lookupOrCreatePointsWrapper(SVGElement* contextElement)
</del><ins>+Ref<SVGAnimatedProperty> SVGPolyElement::lookupOrCreatePointsWrapper(SVGElement* contextElement)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><span class="cx"> SVGPolyElement& ownerType = downcast<SVGPolyElement>(*contextElement);
</span><span class="lines">@@ -148,13 +148,13 @@
</span><span class="cx"> SVGListPropertyTearOff<SVGPointList>* SVGPolyElement::points()
</span><span class="cx"> {
</span><span class="cx"> m_points.shouldSynchronize = true;
</span><del>- return static_cast<SVGListPropertyTearOff<SVGPointList>*>(static_pointer_cast<SVGAnimatedPointList>(lookupOrCreatePointsWrapper(this))->baseVal());
</del><ins>+ return static_cast<SVGListPropertyTearOff<SVGPointList>*>(static_reference_cast<SVGAnimatedPointList>(lookupOrCreatePointsWrapper(this))->baseVal());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SVGListPropertyTearOff<SVGPointList>* SVGPolyElement::animatedPoints()
</span><span class="cx"> {
</span><span class="cx"> m_points.shouldSynchronize = true;
</span><del>- return static_cast<SVGListPropertyTearOff<SVGPointList>*>(static_pointer_cast<SVGAnimatedPointList>(lookupOrCreatePointsWrapper(this))->animVal());
</del><ins>+ return static_cast<SVGListPropertyTearOff<SVGPointList>*>(static_reference_cast<SVGAnimatedPointList>(lookupOrCreatePointsWrapper(this))->animVal());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPolyElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPolyElement.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPolyElement.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGPolyElement.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">
</span><span class="cx"> // Custom 'points' property
</span><span class="cx"> static void synchronizePoints(SVGElement* contextElement);
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreatePointsWrapper(SVGElement* contextElement);
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreatePointsWrapper(SVGElement* contextElement);
</ins><span class="cx">
</span><span class="cx"> BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGPolyElement)
</span><span class="cx"> DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGTextContentElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGTextContentElement.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGTextContentElement.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGTextContentElement.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> ownerType.m_textLength.synchronize(&ownerType, textLengthPropertyInfo()->attributeName, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGTextContentElement::lookupOrCreateTextLengthWrapper(SVGElement* contextElement)
</del><ins>+Ref<SVGAnimatedProperty> SVGTextContentElement::lookupOrCreateTextLengthWrapper(SVGElement* contextElement)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><span class="cx"> SVGTextContentElement& ownerType = downcast<SVGTextContentElement>(*contextElement);
</span><span class="lines">@@ -89,14 +89,14 @@
</span><span class="cx"> (&ownerType, textLengthPropertyInfo(), ownerType.m_textLength.value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedLength> SVGTextContentElement::textLengthAnimated()
</del><ins>+Ref<SVGAnimatedLength> SVGTextContentElement::textLengthAnimated()
</ins><span class="cx"> {
</span><span class="cx"> static NeverDestroyed<SVGLength> defaultTextLength(LengthModeOther);
</span><span class="cx"> if (m_specifiedTextLength == defaultTextLength)
</span><span class="cx"> m_textLength.value.newValueSpecifiedUnits(LengthTypeNumber, getComputedTextLength(), ASSERT_NO_EXCEPTION);
</span><span class="cx">
</span><span class="cx"> m_textLength.shouldSynchronize = true;
</span><del>- return static_pointer_cast<SVGAnimatedLength>(lookupOrCreateTextLengthWrapper(this));
</del><ins>+ return static_reference_cast<SVGAnimatedLength>(lookupOrCreateTextLengthWrapper(this));
</ins><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGTextContentElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGTextContentElement.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGTextContentElement.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGTextContentElement.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> // textLength is not declared using the standard DECLARE_ANIMATED_LENGTH macro
</span><span class="cx"> // as its getter needs special handling (return getComputedTextLength(), instead of m_textLength).
</span><span class="cx"> SVGLength& specifiedTextLength() { return m_specifiedTextLength; }
</span><del>- PassRefPtr<SVGAnimatedLength> textLengthAnimated();
</del><ins>+ Ref<SVGAnimatedLength> textLengthAnimated();
</ins><span class="cx"> static const SVGPropertyInfo* textLengthPropertyInfo();
</span><span class="cx">
</span><span class="cx"> protected:
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">
</span><span class="cx"> // Custom 'textLength' property
</span><span class="cx"> static void synchronizeTextLength(SVGElement* contextElement);
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreateTextLengthWrapper(SVGElement* contextElement);
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreateTextLengthWrapper(SVGElement* contextElement);
</ins><span class="cx"> mutable SVGSynchronizableAnimatedProperty<SVGLength> m_textLength;
</span><span class="cx"> SVGLength m_specifiedTextLength;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGViewSpeccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGViewSpec.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGViewSpec.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGViewSpec.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -148,40 +148,40 @@
</span><span class="cx"> SVGTransformListPropertyTearOff* SVGViewSpec::transform()
</span><span class="cx"> {
</span><span class="cx"> if (!m_contextElement)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> // Return the animVal here, as its readonly by default - which is exactly what we want here.
</span><del>- return static_cast<SVGTransformListPropertyTearOff*>(static_pointer_cast<SVGAnimatedTransformList>(lookupOrCreateTransformWrapper(this))->animVal());
</del><ins>+ return static_cast<SVGTransformListPropertyTearOff*>(static_reference_cast<SVGAnimatedTransformList>(lookupOrCreateTransformWrapper(this))->animVal());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedRect> SVGViewSpec::viewBoxAnimated()
</del><ins>+RefPtr<SVGAnimatedRect> SVGViewSpec::viewBoxAnimated()
</ins><span class="cx"> {
</span><span class="cx"> if (!m_contextElement)
</span><del>- return 0;
- return static_pointer_cast<SVGAnimatedRect>(lookupOrCreateViewBoxWrapper(this));
</del><ins>+ return nullptr;
+ return static_reference_cast<SVGAnimatedRect>(lookupOrCreateViewBoxWrapper(this));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedPreserveAspectRatio> SVGViewSpec::preserveAspectRatioAnimated()
</del><ins>+RefPtr<SVGAnimatedPreserveAspectRatio> SVGViewSpec::preserveAspectRatioAnimated()
</ins><span class="cx"> {
</span><span class="cx"> if (!m_contextElement)
</span><del>- return 0;
- return static_pointer_cast<SVGAnimatedPreserveAspectRatio>(lookupOrCreatePreserveAspectRatioWrapper(this));
</del><ins>+ return nullptr;
+ return static_reference_cast<SVGAnimatedPreserveAspectRatio>(lookupOrCreatePreserveAspectRatioWrapper(this));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGViewSpec::lookupOrCreateViewBoxWrapper(SVGViewSpec* ownerType)
</del><ins>+Ref<SVGAnimatedProperty> SVGViewSpec::lookupOrCreateViewBoxWrapper(SVGViewSpec* ownerType)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(ownerType);
</span><span class="cx"> ASSERT(ownerType->contextElement());
</span><span class="cx"> return SVGAnimatedProperty::lookupOrCreateWrapper<SVGElement, SVGAnimatedRect, FloatRect>(ownerType->contextElement(), viewBoxPropertyInfo(), ownerType->m_viewBox);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper(SVGViewSpec* ownerType)
</del><ins>+Ref<SVGAnimatedProperty> SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper(SVGViewSpec* ownerType)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(ownerType);
</span><span class="cx"> ASSERT(ownerType->contextElement());
</span><span class="cx"> return SVGAnimatedProperty::lookupOrCreateWrapper<SVGElement, SVGAnimatedPreserveAspectRatio, SVGPreserveAspectRatio>(ownerType->contextElement(), preserveAspectRatioPropertyInfo(), ownerType->m_preserveAspectRatio);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<SVGAnimatedProperty> SVGViewSpec::lookupOrCreateTransformWrapper(SVGViewSpec* ownerType)
</del><ins>+Ref<SVGAnimatedProperty> SVGViewSpec::lookupOrCreateTransformWrapper(SVGViewSpec* ownerType)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(ownerType);
</span><span class="cx"> ASSERT(ownerType->contextElement());
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGViewSpech"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGViewSpec.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGViewSpec.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/SVGViewSpec.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -72,13 +72,13 @@
</span><span class="cx"> SVGTransformList transformBaseValue() const { return m_transform; }
</span><span class="cx">
</span><span class="cx"> // Custom animated 'viewBox' property.
</span><del>- PassRefPtr<SVGAnimatedRect> viewBoxAnimated();
</del><ins>+ RefPtr<SVGAnimatedRect> viewBoxAnimated();
</ins><span class="cx"> FloatRect& viewBox() { return m_viewBox; }
</span><span class="cx"> FloatRect viewBoxBaseValue() const { return m_viewBox; }
</span><span class="cx"> void setViewBoxBaseValue(const FloatRect& viewBox) { m_viewBox = viewBox; }
</span><span class="cx">
</span><span class="cx"> // Custom animated 'preserveAspectRatio' property.
</span><del>- PassRefPtr<SVGAnimatedPreserveAspectRatio> preserveAspectRatioAnimated();
</del><ins>+ RefPtr<SVGAnimatedPreserveAspectRatio> preserveAspectRatioAnimated();
</ins><span class="cx"> SVGPreserveAspectRatio& preserveAspectRatio() { return m_preserveAspectRatio; }
</span><span class="cx"> SVGPreserveAspectRatio preserveAspectRatioBaseValue() const { return m_preserveAspectRatio; }
</span><span class="cx"> void setPreserveAspectRatioBaseValue(const SVGPreserveAspectRatio& preserveAspectRatio) { m_preserveAspectRatio = preserveAspectRatio; }
</span><span class="lines">@@ -94,9 +94,9 @@
</span><span class="cx"> static const AtomicString& viewBoxIdentifier();
</span><span class="cx"> static const AtomicString& preserveAspectRatioIdentifier();
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreateTransformWrapper(SVGViewSpec* contextElement);
- static PassRefPtr<SVGAnimatedProperty> lookupOrCreateViewBoxWrapper(SVGViewSpec* contextElement);
- static PassRefPtr<SVGAnimatedProperty> lookupOrCreatePreserveAspectRatioWrapper(SVGViewSpec* contextElement);
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreateTransformWrapper(SVGViewSpec* contextElement);
+ static Ref<SVGAnimatedProperty> lookupOrCreateViewBoxWrapper(SVGViewSpec* contextElement);
+ static Ref<SVGAnimatedProperty> lookupOrCreatePreserveAspectRatioWrapper(SVGViewSpec* contextElement);
</ins><span class="cx">
</span><span class="cx"> SVGElement* m_contextElement;
</span><span class="cx"> SVGZoomAndPanType m_zoomAndPan;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedEnumerationPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -39,10 +39,10 @@
</span><span class="cx"> SVGAnimatedStaticPropertyTearOff<unsigned>::setBaseVal(property, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedEnumerationPropertyTearOff<EnumType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, EnumType& property)
</del><ins>+ static Ref<SVGAnimatedEnumerationPropertyTearOff<EnumType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, EnumType& property)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedEnumerationPropertyTearOff<EnumType>(contextElement, attributeName, animatedPropertyType, reinterpret_cast<unsigned&>(property)));
</del><ins>+ return adoptRef(*new SVGAnimatedEnumerationPropertyTearOff<EnumType>(contextElement, attributeName, animatedPropertyType, reinterpret_cast<unsigned&>(property)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> EnumType& currentAnimatedValue()
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -153,10 +153,10 @@
</span><span class="cx"> synchronizeWrappersIfNeeded();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedListPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& values)
</del><ins>+ static Ref<SVGAnimatedListPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& values)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedListPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, values));
</del><ins>+ return adoptRef(*new SVGAnimatedListPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, values));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedPathSegListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -59,10 +59,10 @@
</span><span class="cx"> static_cast<SVGPathSegListPropertyTearOff*>(m_baseVal.get())->removeItemFromList(itemIndex, shouldSynchronizeWrappers);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedPathSegListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGPathSegList& values)
</del><ins>+ static Ref<SVGAnimatedPathSegListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGPathSegList& values)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedPathSegListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values));
</del><ins>+ return adoptRef(*new SVGAnimatedPathSegListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> using SVGAnimatedListPropertyTearOff<SVGPathSegList>::animationStarted;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -48,18 +48,18 @@
</span><span class="cx"> virtual ~SVGAnimatedProperty();
</span><span class="cx">
</span><span class="cx"> template<typename OwnerType, typename TearOffType, typename PropertyType>
</span><del>- static PassRefPtr<TearOffType> lookupOrCreateWrapper(OwnerType* element, const SVGPropertyInfo* info, PropertyType& property)
</del><ins>+ static TearOffType& lookupOrCreateWrapper(OwnerType* element, const SVGPropertyInfo* info, PropertyType& property)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(info);
</span><span class="cx"> SVGAnimatedPropertyDescription key(element, info->propertyIdentifier);
</span><del>- RefPtr<SVGAnimatedProperty> wrapper = animatedPropertyCache()->get(key);
- if (!wrapper) {
- wrapper = TearOffType::create(element, info->attributeName, info->animatedPropertyType, property);
</del><ins>+ auto& slot = animatedPropertyCache()->add(key, nullptr).iterator->value;
+ if (!slot) {
+ Ref<SVGAnimatedProperty> wrapper = TearOffType::create(element, info->attributeName, info->animatedPropertyType, property);
</ins><span class="cx"> if (info->animatedPropertyState == PropertyIsReadOnly)
</span><span class="cx"> wrapper->setIsReadOnly();
</span><del>- animatedPropertyCache()->set(key, wrapper.get());
</del><ins>+ slot = &wrapper.leakRef();
</ins><span class="cx"> }
</span><del>- return static_pointer_cast<TearOffType>(wrapper);
</del><ins>+ return static_cast<TearOffType&>(*slot);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template<typename OwnerType, typename TearOffType>
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyMacrosh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyMacros.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyMacros.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyMacros.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -132,10 +132,10 @@
</span><span class="cx"> m_##LowerProperty.isValid = validValue; \
</span><span class="cx"> } \
</span><span class="cx"> \
</span><del>- PassRefPtr<TearOffType> LowerProperty##Animated() \
</del><ins>+ Ref<TearOffType> LowerProperty##Animated() \
</ins><span class="cx"> { \
</span><span class="cx"> m_##LowerProperty.shouldSynchronize = true; \
</span><del>- return static_pointer_cast<TearOffType>(lookupOrCreate##UpperProperty##Wrapper(this)); \
</del><ins>+ return static_reference_cast<TearOffType>(lookupOrCreate##UpperProperty##Wrapper(this)); \
</ins><span class="cx"> } \
</span><span class="cx"> \
</span><span class="cx"> bool LowerProperty##IsValid() const \
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> m_##LowerProperty.synchronize(this, LowerProperty##PropertyInfo()->attributeName, value); \
</span><span class="cx"> } \
</span><span class="cx"> \
</span><del>- static PassRefPtr<SVGAnimatedProperty> lookupOrCreate##UpperProperty##Wrapper(SVGElement* maskedOwnerType) \
</del><ins>+ static Ref<SVGAnimatedProperty> lookupOrCreate##UpperProperty##Wrapper(SVGElement* maskedOwnerType) \
</ins><span class="cx"> { \
</span><span class="cx"> ASSERT(maskedOwnerType); \
</span><span class="cx"> UseOwnerType* ownerType = static_cast<UseOwnerType*>(maskedOwnerType); \
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -57,10 +57,10 @@
</span><span class="cx"> return m_animVal.get();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property)
</del><ins>+ static Ref<SVGAnimatedPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, property));
</del><ins>+ return adoptRef(*new SVGAnimatedPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, property));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PropertyType& currentAnimatedValue()
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedStaticPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedStaticPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -48,10 +48,10 @@
</span><span class="cx"> commitChange();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedStaticPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property)
</del><ins>+ static Ref<SVGAnimatedStaticPropertyTearOff<PropertyType>> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, PropertyType& property)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedStaticPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, property));
</del><ins>+ return adoptRef(*new SVGAnimatedStaticPropertyTearOff<PropertyType>(contextElement, attributeName, animatedPropertyType, property));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PropertyType& currentAnimatedValue()
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGAnimatedTransformListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -42,10 +42,10 @@
</span><span class="cx"> return static_cast<SVGListPropertyTearOff<SVGTransformList>*>(m_animVal.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static PassRefPtr<SVGAnimatedTransformListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGTransformList& values)
</del><ins>+ static Ref<SVGAnimatedTransformListPropertyTearOff> create(SVGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyType animatedPropertyType, SVGTransformList& values)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(contextElement);
</span><del>- return adoptRef(new SVGAnimatedTransformListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values));
</del><ins>+ return adoptRef(*new SVGAnimatedTransformListPropertyTearOff(contextElement, attributeName, animatedPropertyType, values));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGListPropertyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGListProperty.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGListProperty.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGListProperty.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">
</span><span class="cx"> typedef typename SVGPropertyTraits<PropertyType>::ListItemType ListItemType;
</span><span class="cx"> typedef SVGPropertyTearOff<ListItemType> ListItemTearOff;
</span><del>- typedef PassRefPtr<ListItemTearOff> PassListItemTearOff;
</del><ins>+ typedef RefPtr<ListItemTearOff> PtrListItemTearOff;
</ins><span class="cx"> typedef SVGAnimatedListPropertyTearOff<PropertyType> AnimatedListPropertyTearOff;
</span><span class="cx"> typedef typename SVGAnimatedListPropertyTearOff<PropertyType>::ListWrapperCache ListWrapperCache;
</span><span class="cx">
</span><span class="lines">@@ -138,19 +138,18 @@
</span><span class="cx"> return newItem;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff initializeValuesAndWrappers(PassListItemTearOff passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff initializeValuesAndWrappers(PtrListItemTearOff newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canAlterList(ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- RefPtr<ListItemTearOff> newItem = passNewItem;
</del><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><span class="cx">
</span><span class="cx"> // Spec: If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list.
</span><span class="lines">@@ -164,7 +163,7 @@
</span><span class="cx"> m_wrappers->append(newItem);
</span><span class="cx">
</span><span class="cx"> commitChange();
</span><del>- return newItem.release();
</del><ins>+ return newItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // SVGList::getItem()
</span><span class="lines">@@ -187,11 +186,11 @@
</span><span class="cx"> return m_values->at(index);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff getItemValuesAndWrappers(AnimatedListPropertyTearOff* animatedList, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff getItemValuesAndWrappers(AnimatedListPropertyTearOff* animatedList, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canGetItem(index, ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // Spec: Returns the specified item from the list. The returned item is the item itself and not a copy.
</span><span class="cx"> // Any changes made to the item are immediately reflected in the list.
</span><span class="lines">@@ -232,23 +231,22 @@
</span><span class="cx"> return newItem;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff insertItemBeforeValuesAndWrappers(PassListItemTearOff passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff insertItemBeforeValuesAndWrappers(PtrListItemTearOff newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canAlterList(ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list.
</span><span class="cx"> if (index > m_values->size())
</span><span class="cx"> index = m_values->size();
</span><span class="cx">
</span><del>- RefPtr<ListItemTearOff> newItem = passNewItem;
</del><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><span class="cx">
</span><span class="cx"> // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list.
</span><span class="lines">@@ -263,7 +261,7 @@
</span><span class="cx"> m_wrappers->insert(index, newItem);
</span><span class="cx">
</span><span class="cx"> commitChange();
</span><del>- return newItem.release();
</del><ins>+ return newItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // SVGList::replaceItem()
</span><span class="lines">@@ -305,31 +303,30 @@
</span><span class="cx"> return newItem;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff replaceItemValuesAndWrappers(PassListItemTearOff passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff replaceItemValuesAndWrappers(PtrListItemTearOff newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canReplaceItem(index, ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><del>- RefPtr<ListItemTearOff> newItem = passNewItem;
</del><span class="cx">
</span><span class="cx"> // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list.
</span><span class="cx"> // Spec: If the item is already in this list, note that the index of the item to replace is before the removal of the item.
</span><span class="cx"> if (!processIncomingListItemWrapper(newItem, &index))
</span><del>- return newItem.release();
</del><ins>+ return newItem;
</ins><span class="cx">
</span><span class="cx"> if (m_values->isEmpty()) {
</span><span class="cx"> ASSERT(m_wrappers->isEmpty());
</span><del>- // 'passNewItem' already lived in our list, we removed it, and now we're empty, which means there's nothing to replace.
</del><ins>+ // 'newItem' already lived in our list, we removed it, and now we're empty, which means there's nothing to replace.
</ins><span class="cx"> ec = INDEX_SIZE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Detach the existing wrapper.
</span><span class="lines">@@ -342,7 +339,7 @@
</span><span class="cx"> m_wrappers->at(index) = newItem;
</span><span class="cx">
</span><span class="cx"> commitChange();
</span><del>- return newItem.release();
</del><ins>+ return newItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // SVGList::removeItem()
</span><span class="lines">@@ -371,11 +368,11 @@
</span><span class="cx"> return oldItem;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff removeItemValuesAndWrappers(AnimatedListPropertyTearOff* animatedList, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff removeItemValuesAndWrappers(AnimatedListPropertyTearOff* animatedList, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canRemoveItem(index, ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><span class="cx">
</span><span class="lines">@@ -408,19 +405,18 @@
</span><span class="cx"> return newItem;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff appendItemValuesAndWrappers(PassListItemTearOff passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff appendItemValuesAndWrappers(PtrListItemTearOff newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canAlterList(ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- RefPtr<ListItemTearOff> newItem = passNewItem;
</del><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><span class="cx">
</span><span class="cx"> // Spec: If newItem is already in a list, it is removed from its previous list before it is inserted into this list.
</span><span class="lines">@@ -431,7 +427,7 @@
</span><span class="cx"> m_wrappers->append(newItem);
</span><span class="cx">
</span><span class="cx"> commitChange(ListModificationAppend);
</span><del>- return newItem.release();
</del><ins>+ return newItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PropertyType& values()
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx">
</span><span class="cx"> typedef typename SVGPropertyTraits<PropertyType>::ListItemType ListItemType;
</span><span class="cx"> typedef SVGPropertyTearOff<ListItemType> ListItemTearOff;
</span><del>- typedef PassRefPtr<ListItemTearOff> PassListItemTearOff;
</del><ins>+ typedef RefPtr<ListItemTearOff> PtrListItemTearOff;
</ins><span class="cx"> typedef SVGAnimatedListPropertyTearOff<PropertyType> AnimatedListPropertyTearOff;
</span><span class="cx"> typedef typename SVGAnimatedListPropertyTearOff<PropertyType>::ListWrapperCache ListWrapperCache;
</span><span class="cx">
</span><span class="lines">@@ -40,10 +40,10 @@
</span><span class="cx"> using Base::m_values;
</span><span class="cx"> using Base::m_wrappers;
</span><span class="cx">
</span><del>- static PassRefPtr<Self> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, PropertyType& values, ListWrapperCache& wrappers)
</del><ins>+ static Ref<Self> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, PropertyType& values, ListWrapperCache& wrappers)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(animatedProperty);
</span><del>- return adoptRef(new Self(animatedProperty, role, values, wrappers));
</del><ins>+ return adoptRef(*new Self(animatedProperty, role, values, wrappers));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int findItem(ListItemTearOff* item) const
</span><span class="lines">@@ -83,34 +83,34 @@
</span><span class="cx"> Base::clearValuesAndWrappers(ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff initialize(PassListItemTearOff passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff initialize(PtrListItemTearOff newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- return Base::initializeValuesAndWrappers(passNewItem, ec);
</del><ins>+ return Base::initializeValuesAndWrappers(newItem, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff getItem(unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff getItem(unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> return Base::getItemValuesAndWrappers(m_animatedProperty.get(), index, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff insertItemBefore(PassListItemTearOff passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff insertItemBefore(PtrListItemTearOff newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- return Base::insertItemBeforeValuesAndWrappers(passNewItem, index, ec);
</del><ins>+ return Base::insertItemBeforeValuesAndWrappers(newItem, index, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff replaceItem(PassListItemTearOff passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff replaceItem(PtrListItemTearOff newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- return Base::replaceItemValuesAndWrappers(passNewItem, index, ec);
</del><ins>+ return Base::replaceItemValuesAndWrappers(newItem, index, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff removeItem(unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff removeItem(unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> return Base::removeItemValuesAndWrappers(m_animatedProperty.get(), index, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemTearOff appendItem(PassListItemTearOff passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemTearOff appendItem(PtrListItemTearOff newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><del>- return Base::appendItemValuesAndWrappers(passNewItem, ec);
</del><ins>+ return Base::appendItemValuesAndWrappers(newItem, ec);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGPathSegListPropertyTearOffcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.cpp        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -47,20 +47,20 @@
</span><span class="cx"> SVGPathSegListPropertyTearOff::Base::clearValues(ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SVGPathSegListPropertyTearOff::PassListItemType SVGPathSegListPropertyTearOff::getItem(unsigned index, ExceptionCode& ec)
</del><ins>+SVGPathSegListPropertyTearOff::PtrListItemType SVGPathSegListPropertyTearOff::getItem(unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ListItemType returnedItem = Base::getItemValues(index, ec);
</span><span class="cx"> if (returnedItem) {
</span><span class="cx"> ASSERT(static_cast<SVGPathSegWithContext*>(returnedItem.get())->contextElement() == contextElement());
</span><span class="cx"> ASSERT(static_cast<SVGPathSegWithContext*>(returnedItem.get())->role() == m_pathSegRole);
</span><span class="cx"> }
</span><del>- return returnedItem.release();
</del><ins>+ return returnedItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-SVGPathSegListPropertyTearOff::PassListItemType SVGPathSegListPropertyTearOff::replaceItem(PassListItemType passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+SVGPathSegListPropertyTearOff::PtrListItemType SVGPathSegListPropertyTearOff::replaceItem(PtrListItemType newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="lines">@@ -71,16 +71,15 @@
</span><span class="cx"> static_cast<SVGPathSegWithContext*>(replacedItem.get())->setContextAndRole(0, PathSegUndefinedRole);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ListItemType newItem = passNewItem;
</del><span class="cx"> return Base::replaceItemValues(newItem, index, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-SVGPathSegListPropertyTearOff::PassListItemType SVGPathSegListPropertyTearOff::removeItem(unsigned index, ExceptionCode& ec)
</del><ins>+SVGPathSegListPropertyTearOff::PtrListItemType SVGPathSegListPropertyTearOff::removeItem(unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> SVGPathSegListPropertyTearOff::ListItemType removedItem = SVGPathSegListPropertyTearOff::Base::removeItemValues(index, ec);
</span><span class="cx"> if (removedItem)
</span><span class="cx"> static_cast<SVGPathSegWithContext*>(removedItem.get())->setContextAndRole(0, PathSegUndefinedRole);
</span><del>- return removedItem.release();
</del><ins>+ return removedItem;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> SVGPathElement* SVGPathSegListPropertyTearOff::contextElement() const
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGPathSegListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -32,12 +32,12 @@
</span><span class="cx"> typedef SVGListProperty<SVGPathSegList> Base;
</span><span class="cx"> typedef SVGAnimatedListPropertyTearOff<SVGPathSegList> AnimatedListPropertyTearOff;
</span><span class="cx"> typedef SVGPropertyTraits<SVGPathSegList>::ListItemType ListItemType;
</span><del>- typedef PassRefPtr<SVGPathSeg> PassListItemType;
</del><ins>+ typedef RefPtr<SVGPathSeg> PtrListItemType;
</ins><span class="cx">
</span><del>- static PassRefPtr<SVGPathSegListPropertyTearOff> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGPathSegRole pathSegRole, SVGPathSegList& values, ListWrapperCache& wrappers)
</del><ins>+ static Ref<SVGPathSegListPropertyTearOff> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGPathSegRole pathSegRole, SVGPathSegList& values, ListWrapperCache& wrappers)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(animatedProperty);
</span><del>- return adoptRef(new SVGPathSegListPropertyTearOff(animatedProperty, role, pathSegRole, values, wrappers));
</del><ins>+ return adoptRef(*new SVGPathSegListPropertyTearOff(animatedProperty, role, pathSegRole, values, wrappers));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int findItem(const ListItemType& item) const
</span><span class="lines">@@ -67,46 +67,43 @@
</span><span class="cx"> // SVGList API
</span><span class="cx"> void clear(ExceptionCode&);
</span><span class="cx">
</span><del>- PassListItemType initialize(PassListItemType passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemType initialize(PtrListItemType newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> clearContextAndRoles();
</span><del>- ListItemType newItem = passNewItem;
</del><span class="cx"> return Base::initializeValues(newItem, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemType getItem(unsigned index, ExceptionCode&);
</del><ins>+ PtrListItemType getItem(unsigned index, ExceptionCode&);
</ins><span class="cx">
</span><del>- PassListItemType insertItemBefore(PassListItemType passNewItem, unsigned index, ExceptionCode& ec)
</del><ins>+ PtrListItemType insertItemBefore(PtrListItemType newItem, unsigned index, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ListItemType newItem = passNewItem;
</del><span class="cx"> return Base::insertItemBeforeValues(newItem, index, ec);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassListItemType replaceItem(PassListItemType, unsigned index, ExceptionCode&);
</del><ins>+ PtrListItemType replaceItem(PtrListItemType, unsigned index, ExceptionCode&);
</ins><span class="cx">
</span><del>- PassListItemType removeItem(unsigned index, ExceptionCode&);
</del><ins>+ PtrListItemType removeItem(unsigned index, ExceptionCode&);
</ins><span class="cx">
</span><del>- PassListItemType appendItem(PassListItemType passNewItem, ExceptionCode& ec)
</del><ins>+ PtrListItemType appendItem(PtrListItemType newItem, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> // Not specified, but FF/Opera do it this way, and it's just sane.
</span><del>- if (!passNewItem) {
</del><ins>+ if (!newItem) {
</ins><span class="cx"> ec = SVGException::SVG_WRONG_TYPE_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- ListItemType newItem = passNewItem;
</del><span class="cx"> return Base::appendItemValues(newItem, ec);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGPropertyInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGPropertyInfo.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGPropertyInfo.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGPropertyInfo.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx"> typedef void (*SynchronizeProperty)(SVGElement*);
</span><del>- typedef PassRefPtr<SVGAnimatedProperty> (*LookupOrCreateWrapperForAnimatedProperty)(SVGElement*);
</del><ins>+ typedef Ref<SVGAnimatedProperty> (*LookupOrCreateWrapperForAnimatedProperty)(SVGElement*);
</ins><span class="cx">
</span><span class="cx"> SVGPropertyInfo(AnimatedPropertyType newType, AnimatedPropertyState newState, const QualifiedName& newAttributeName,
</span><span class="cx"> const AtomicString& newPropertyIdentifier, SynchronizeProperty newSynchronizeProperty,
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGStaticListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGStaticListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -35,9 +35,9 @@
</span><span class="cx"> using Base::m_role;
</span><span class="cx"> using Base::m_values;
</span><span class="cx">
</span><del>- static PassRefPtr<SVGStaticListPropertyTearOff<PropertyType>> create(SVGElement& contextElement, PropertyType& values)
</del><ins>+ static Ref<SVGStaticListPropertyTearOff<PropertyType>> create(SVGElement& contextElement, PropertyType& values)
</ins><span class="cx"> {
</span><del>- return adoptRef(new SVGStaticListPropertyTearOff<PropertyType>(&contextElement, values));
</del><ins>+ return adoptRef(*new SVGStaticListPropertyTearOff<PropertyType>(&contextElement, values));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // SVGList API
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGStaticPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGStaticPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -37,9 +37,9 @@
</span><span class="cx">
</span><span class="cx"> // Used for non-animated POD types that are not associated with a SVGAnimatedProperty object, nor with a XML DOM attribute
</span><span class="cx"> // (for example: SVGSVGElement::currentTranslate).
</span><del>- static PassRefPtr<Self> create(ContextElement& contextElement, PropertyType& value, UpdateMethod update)
</del><ins>+ static Ref<Self> create(ContextElement& contextElement, PropertyType& value, UpdateMethod update)
</ins><span class="cx"> {
</span><del>- return adoptRef(new Self(&contextElement, value, update));
</del><ins>+ return adoptRef(*new Self(&contextElement, value, update));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual void commitChange() { (m_contextElement.get()->*m_update)(); }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgpropertiesSVGTransformListPropertyTearOffh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h (181344 => 181345)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h        2015-03-10 20:36:08 UTC (rev 181344)
+++ trunk/Source/WebCore/svg/properties/SVGTransformListPropertyTearOff.h        2015-03-10 20:39:50 UTC (rev 181345)
</span><span class="lines">@@ -31,41 +31,41 @@
</span><span class="cx"> typedef SVGAnimatedListPropertyTearOff<SVGTransformList> AnimatedListPropertyTearOff;
</span><span class="cx"> typedef SVGAnimatedListPropertyTearOff<SVGTransformList>::ListWrapperCache ListWrapperCache;
</span><span class="cx">
</span><del>- static PassRefPtr<SVGListPropertyTearOff<SVGTransformList>> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGTransformList& values, ListWrapperCache& wrappers)
</del><ins>+ static Ref<SVGListPropertyTearOff<SVGTransformList>> create(AnimatedListPropertyTearOff* animatedProperty, SVGPropertyRole role, SVGTransformList& values, ListWrapperCache& wrappers)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(animatedProperty);
</span><del>- return adoptRef(new SVGTransformListPropertyTearOff(animatedProperty, role, values, wrappers));
</del><ins>+ return adoptRef(*new SVGTransformListPropertyTearOff(animatedProperty, role, values, wrappers));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- PassRefPtr<SVGPropertyTearOff<SVGTransform>> createSVGTransformFromMatrix(SVGPropertyTearOff<SVGMatrix>* matrix, ExceptionCode& ec)
</del><ins>+ RefPtr<SVGPropertyTearOff<SVGTransform>> createSVGTransformFromMatrix(SVGPropertyTearOff<SVGMatrix>* matrix, ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_values);
</span><span class="cx"> if (!matrix) {
</span><span class="cx"> ec = TYPE_MISMATCH_ERR;
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> return SVGPropertyTearOff<SVGTransform>::create(m_values->createSVGTransformFromMatrix(matrix->propertyReference()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>- PassRefPtr<SVGPropertyTearOff<SVGTransform>> consolidate(ExceptionCode& ec)
</del><ins>+ RefPtr<SVGPropertyTearOff<SVGTransform>> consolidate(ExceptionCode& ec)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_values);
</span><span class="cx"> ASSERT(m_wrappers);
</span><span class="cx"> if (!canAlterList(ec))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><span class="cx">
</span><span class="cx"> // Spec: If the list was empty, then a value of null is returned.
</span><span class="cx"> if (m_values->isEmpty())
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> detachListWrappers(0);
</span><span class="cx"> RefPtr<SVGPropertyTearOff<SVGTransform>> wrapper = SVGPropertyTearOff<SVGTransform>::create(m_values->consolidate());
</span><span class="cx"> m_wrappers->append(wrapper);
</span><span class="cx">
</span><span class="cx"> ASSERT(m_values->size() == m_wrappers->size());
</span><del>- return wrapper.release();
</del><ins>+ return wrapper;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span></span></pre>
</div>
</div>
</body>
</html>