<!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>[176933] 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/176933">176933</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2014-12-07 15:25:59 -0800 (Sun, 07 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use more PassRef in AtomicString.
&lt;https://webkit.org/b/139319&gt;

Reviewed by Antti Koivisto.

Make a pass over AtomicString and convert functions that return PassRefPtr
into returning RefPtr (where it may be null) and PassRef otherwise.
This allows the compiler to skip null checks in many places.

* wtf/text/AtomicString.cpp:
(WTF::addToStringTable):
(WTF::AtomicString::add):
(WTF::AtomicString::addFromLiteralData):
(WTF::AtomicString::addSlowCase):
* wtf/text/AtomicString.h:
(WTF::AtomicString::add):
(WTF::AtomicString::addWithStringTableProvider):
* wtf/text/cf/AtomicStringCF.cpp:
(WTF::AtomicString::add):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtftextAtomicStringcpp">trunk/Source/WTF/wtf/text/AtomicString.cpp</a></li>
<li><a href="#trunkSourceWTFwtftextAtomicStringh">trunk/Source/WTF/wtf/text/AtomicString.h</a></li>
<li><a href="#trunkSourceWTFwtftextcfAtomicStringCFcpp">trunk/Source/WTF/wtf/text/cf/AtomicStringCF.cpp</a></li>
<li><a href="#trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin">trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (176932 => 176933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-12-07 22:25:01 UTC (rev 176932)
+++ trunk/Source/WTF/ChangeLog        2014-12-07 23:25:59 UTC (rev 176933)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2014-12-07  Andreas Kling  &lt;akling@apple.com&gt;
+
+        Use more PassRef in AtomicString.
+        &lt;https://webkit.org/b/139319&gt;
+
+        Reviewed by Antti Koivisto.
+
+        Make a pass over AtomicString and convert functions that return PassRefPtr
+        into returning RefPtr (where it may be null) and PassRef otherwise.
+        This allows the compiler to skip null checks in many places.
+
+        * wtf/text/AtomicString.cpp:
+        (WTF::addToStringTable):
+        (WTF::AtomicString::add):
+        (WTF::AtomicString::addFromLiteralData):
+        (WTF::AtomicString::addSlowCase):
+        * wtf/text/AtomicString.h:
+        (WTF::AtomicString::add):
+        (WTF::AtomicString::addWithStringTableProvider):
+        * wtf/text/cf/AtomicStringCF.cpp:
+        (WTF::AtomicString::add):
+
</ins><span class="cx"> 2014-12-05  Roger Fong  &lt;roger_fong@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win] proj files copying over too many resources..
</span></span></pre></div>
<a id="trunkSourceWTFwtftextAtomicStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/AtomicString.cpp (176932 => 176933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/AtomicString.cpp        2014-12-07 22:25:01 UTC (rev 176932)
+++ trunk/Source/WTF/wtf/text/AtomicString.cpp        2014-12-07 23:25:59 UTC (rev 176933)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T, typename HashTranslator&gt;
</span><del>-static inline PassRefPtr&lt;StringImpl&gt; addToStringTable(const T&amp; value)
</del><ins>+static inline PassRef&lt;StringImpl&gt; addToStringTable(const T&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     AtomicStringTableLocker locker;
</span><span class="cx"> 
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> 
</span><span class="cx">     // If the string is newly-translated, then we need to adopt it.
</span><span class="cx">     // The boolean in the pair tells us if that is so.
</span><del>-    return addResult.isNewEntry ? adoptRef(*addResult.iterator) : *addResult.iterator;
</del><ins>+    return addResult.isNewEntry ? adoptRef(**addResult.iterator) : **addResult.iterator;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> struct CStringTranslator {
</span><span class="lines">@@ -103,10 +103,10 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(const LChar* c)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(const LChar* c)
</ins><span class="cx"> {
</span><span class="cx">     if (!c)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     if (!*c)
</span><span class="cx">         return StringImpl::empty();
</span><span class="cx"> 
</span><span class="lines">@@ -235,10 +235,10 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(const UChar* s, unsigned length)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(const UChar* s, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     if (!s)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (!length)
</span><span class="cx">         return StringImpl::empty();
</span><span class="lines">@@ -247,22 +247,22 @@
</span><span class="cx">     return addToStringTable&lt;UCharBuffer, UCharBufferTranslator&gt;(buffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(const UChar* s, unsigned length, unsigned existingHash)
</del><ins>+PassRef&lt;StringImpl&gt; AtomicString::add(const UChar* s, unsigned length, unsigned existingHash)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(s);
</span><span class="cx">     ASSERT(existingHash);
</span><span class="cx"> 
</span><span class="cx">     if (!length)
</span><del>-        return StringImpl::empty();
</del><ins>+        return *StringImpl::empty();
</ins><span class="cx"> 
</span><span class="cx">     HashAndCharacters&lt;UChar&gt; buffer = { existingHash, s, length };
</span><span class="cx">     return addToStringTable&lt;HashAndCharacters&lt;UChar&gt;, HashAndCharactersTranslator&lt;UChar&gt;&gt;(buffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(const UChar* s)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(const UChar* s)
</ins><span class="cx"> {
</span><span class="cx">     if (!s)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     unsigned length = 0;
</span><span class="cx">     while (s[length] != UChar(0))
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(StringImpl* baseString, unsigned start, unsigned length)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(StringImpl* baseString, unsigned start, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     if (!baseString)
</span><span class="cx">         return nullptr;
</span><span class="lines">@@ -375,10 +375,10 @@
</span><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(const LChar* s, unsigned length)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(const LChar* s, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     if (!s)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (!length)
</span><span class="cx">         return StringImpl::empty();
</span><span class="lines">@@ -387,7 +387,7 @@
</span><span class="cx">     return addToStringTable&lt;LCharBuffer, LCharBufferTranslator&gt;(buffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::addFromLiteralData(const char* characters, unsigned length)
</del><ins>+PassRef&lt;StringImpl&gt; AtomicString::addFromLiteralData(const char* characters, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(characters);
</span><span class="cx">     ASSERT(length);
</span><span class="lines">@@ -396,10 +396,10 @@
</span><span class="cx">     return addToStringTable&lt;CharBuffer, CharBufferFromLiteralDataTranslator&gt;(buffer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::addSlowCase(StringImpl&amp; string)
</del><ins>+PassRef&lt;StringImpl&gt; AtomicString::addSlowCase(StringImpl&amp; string)
</ins><span class="cx"> {
</span><span class="cx">     if (!string.length())
</span><del>-        return StringImpl::empty();
</del><ins>+        return *StringImpl::empty();
</ins><span class="cx"> 
</span><span class="cx">     ASSERT_WITH_MESSAGE(!string.isAtomic(), &quot;AtomicString should not hit the slow case if the string is already atomic.&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -411,13 +411,13 @@
</span><span class="cx">         string.setIsAtomic(true);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return *addResult.iterator;
</del><ins>+    return **addResult.iterator;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::addSlowCase(AtomicStringTable&amp; stringTable, StringImpl&amp; string)
</del><ins>+PassRef&lt;StringImpl&gt; AtomicString::addSlowCase(AtomicStringTable&amp; stringTable, StringImpl&amp; string)
</ins><span class="cx"> {
</span><span class="cx">     if (!string.length())
</span><del>-        return StringImpl::empty();
</del><ins>+        return *StringImpl::empty();
</ins><span class="cx"> 
</span><span class="cx">     ASSERT_WITH_MESSAGE(!string.isAtomic(), &quot;AtomicString should not hit the slow case if the string is already atomic.&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx">         string.setIsAtomic(true);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return *addResult.iterator;
</del><ins>+    return **addResult.iterator;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AtomicString::remove(StringImpl* string)
</span></span></pre></div>
<a id="trunkSourceWTFwtftextAtomicStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/AtomicString.h (176932 => 176933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/AtomicString.h        2014-12-07 22:25:01 UTC (rev 176932)
+++ trunk/Source/WTF/wtf/text/AtomicString.h        2014-12-07 23:25:59 UTC (rev 176933)
</span><span class="lines">@@ -173,15 +173,15 @@
</span><span class="cx">     void show() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(const LChar*);
-    ALWAYS_INLINE static PassRefPtr&lt;StringImpl&gt; add(const char* s) { return add(reinterpret_cast&lt;const LChar*&gt;(s)); };
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(const LChar*, unsigned length);
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(const UChar*, unsigned length);
-    ALWAYS_INLINE static PassRefPtr&lt;StringImpl&gt; add(const char* s, unsigned length) { return add(reinterpret_cast&lt;const LChar*&gt;(s), length); };
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(const UChar*, unsigned length, unsigned existingHash);
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(const UChar*);
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(StringImpl*, unsigned offset, unsigned length);
-    ALWAYS_INLINE static PassRefPtr&lt;StringImpl&gt; add(StringImpl* string)
</del><ins>+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(const LChar*);
+    ALWAYS_INLINE static RefPtr&lt;StringImpl&gt; add(const char* s) { return add(reinterpret_cast&lt;const LChar*&gt;(s)); };
+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(const LChar*, unsigned length);
+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(const UChar*, unsigned length);
+    ALWAYS_INLINE static RefPtr&lt;StringImpl&gt; add(const char* s, unsigned length) { return add(reinterpret_cast&lt;const LChar*&gt;(s), length); };
+    WTF_EXPORT_STRING_API static PassRef&lt;StringImpl&gt; add(const UChar*, unsigned length, unsigned existingHash);
+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(const UChar*);
+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(StringImpl*, unsigned offset, unsigned length);
+    ALWAYS_INLINE static RefPtr&lt;StringImpl&gt; add(StringImpl* string)
</ins><span class="cx">     {
</span><span class="cx">         if (!string || string-&gt;isAtomic()) {
</span><span class="cx">             ASSERT_WITH_MESSAGE(!string || !string-&gt;length() || isInAtomicStringTable(string), &quot;The atomic string comes from an other thread!&quot;);
</span><span class="lines">@@ -189,13 +189,13 @@
</span><span class="cx">         }
</span><span class="cx">         return addSlowCase(*string);
</span><span class="cx">     }
</span><del>-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; addFromLiteralData(const char* characters, unsigned length);
</del><ins>+    WTF_EXPORT_STRING_API static PassRef&lt;StringImpl&gt; addFromLiteralData(const char* characters, unsigned length);
</ins><span class="cx"> #if USE(CF)
</span><del>-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; add(CFStringRef);
</del><ins>+    WTF_EXPORT_STRING_API static RefPtr&lt;StringImpl&gt; add(CFStringRef);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     template&lt;typename StringTableProvider&gt;
</span><del>-    ALWAYS_INLINE static PassRefPtr&lt;StringImpl&gt; addWithStringTableProvider(StringTableProvider&amp; stringTableProvider, StringImpl* string)
</del><ins>+    ALWAYS_INLINE static RefPtr&lt;StringImpl&gt; addWithStringTableProvider(StringTableProvider&amp; stringTableProvider, StringImpl* string)
</ins><span class="cx">     {
</span><span class="cx">         if (!string || string-&gt;isAtomic()) {
</span><span class="cx">             ASSERT_WITH_MESSAGE(!string || !string-&gt;length() || isInAtomicStringTable(string), &quot;The atomic string comes from an other thread!&quot;);
</span><span class="lines">@@ -214,8 +214,8 @@
</span><span class="cx"> 
</span><span class="cx">     String m_string;
</span><span class="cx">     
</span><del>-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; addSlowCase(StringImpl&amp;);
-    WTF_EXPORT_STRING_API static PassRefPtr&lt;StringImpl&gt; addSlowCase(AtomicStringTable&amp;, StringImpl&amp;);
</del><ins>+    WTF_EXPORT_STRING_API static PassRef&lt;StringImpl&gt; addSlowCase(StringImpl&amp;);
+    WTF_EXPORT_STRING_API static PassRef&lt;StringImpl&gt; addSlowCase(AtomicStringTable&amp;, StringImpl&amp;);
</ins><span class="cx"> 
</span><span class="cx">     WTF_EXPORT_STRING_API static AtomicStringImpl* findSlowCase(StringImpl&amp;);
</span><span class="cx">     WTF_EXPORT_STRING_API static AtomicString fromUTF8Internal(const char*, const char*);
</span></span></pre></div>
<a id="trunkSourceWTFwtftextcfAtomicStringCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/cf/AtomicStringCF.cpp (176932 => 176933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/cf/AtomicStringCF.cpp        2014-12-07 22:25:01 UTC (rev 176932)
+++ trunk/Source/WTF/wtf/text/cf/AtomicStringCF.cpp        2014-12-07 23:25:59 UTC (rev 176933)
</span><span class="lines">@@ -33,10 +33,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;StringImpl&gt; AtomicString::add(CFStringRef string)
</del><ins>+RefPtr&lt;StringImpl&gt; AtomicString::add(CFStringRef string)
</ins><span class="cx"> {
</span><span class="cx">     if (!string)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     CFIndex length = CFStringGetLength(string);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in (176932 => 176933)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-12-07 22:25:01 UTC (rev 176932)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-12-07 23:25:59 UTC (rev 176933)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">         symbolWithPointer(?absoluteBoundingBoxRect@RenderObject@WebCore@@QBE?AVIntRect@2@_N@Z, ?absoluteBoundingBoxRect@RenderObject@WebCore@@QEBA?AVIntRect@2@_N@Z)
</span><span class="cx">         symbolWithPointer(?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QBE?AVIntRect@2@XZ, ?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QEBA?AVIntRect@2@XZ)
</span><span class="cx">         symbolWithPointer(?description@DocumentMarker@WebCore@@QBEABVString@WTF@@XZ, ?description@DocumentMarker@WebCore@@QEBAAEBVString@WTF@@XZ)
</span><del>-        symbolWithPointer(?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@AAVStringImpl@2@@Z, ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@AEAVStringImpl@2@@Z)
</del><ins>+        symbolWithPointer(?addSlowCase@AtomicString@WTF@@CA?AV?$PassRef@VStringImpl@WTF@@@2@AAVStringImpl@2@@Z, ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRef@VStringImpl@WTF@@@2@AEAVStringImpl@2@@Z)
</ins><span class="cx">         symbolWithPointer(?cacheDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PAV23@PBUClassInfo@3@@Z, ?cacheDOMStructure@WebCore@@YAPEAVStructure@JSC@@PEAVJSDOMGlobalObject@1@PEAV23@PEBUClassInfo@3@@Z)
</span><span class="cx">         symbolWithPointer(?childItemWithTarget@HistoryItem@WebCore@@QBEPAV12@ABVString@WTF@@@Z, ?childItemWithTarget@HistoryItem@WebCore@@QEBAPEAV12@AEBVString@WTF@@@Z)
</span><span class="cx">         symbolWithPointer(?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z, ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AEAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z)
</span></span></pre>
</div>
</div>

</body>
</html>