<!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>[185342] 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/185342">185342</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-06-08 17:28:19 -0700 (Mon, 08 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Access GCController instance via GCController::singleton() instead of a free function
https://bugs.webkit.org/show_bug.cgi?id=145776

Reviewed by Darin Adler.

Access GCController instance via GCController::singleton() instead of a
free function as per coding style and for consistency with other
singleton classes in the codebase.

Source/WebCore:

* bindings/js/GCController.cpp:
(WebCore::GCController::singleton):
(WebCore::gcController): Deleted.
* bindings/js/GCController.h:
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::clear):
* bindings/js/ScriptController.cpp:
(WebCore::collectGarbageAfterWindowShellDestruction):
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseCriticalMemory):

Source/WebKit/mac:

* Misc/WebCoreStatistics.mm:
(+[WebCoreStatistics garbageCollectJavaScriptObjects]):
(+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:]):
(+[WebCoreStatistics setJavaScriptGarbageCollectorTimerEnabled:]):
* WebView/WebView.mm:
(+[WebView garbageCollectNow]):
(+[WebView discardAllCompiledCode]):
(-[WebView _close]):

Source/WebKit/win:

* WebCoreStatistics.cpp:
(WebCoreStatistics::garbageCollectJavaScriptObjects):
(WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
(WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled):
* WebJavaScriptCollector.cpp:
(WebJavaScriptCollector::collect):
(WebJavaScriptCollector::collectOnAlternateThread):

Source/WebKit2:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::garbageCollectJavaScriptObjects):
(WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::terminate):
(WebKit::WebProcess::didClose):
(WebKit::WebProcess::garbageCollectJavaScriptObjects):
(WebKit::WebProcess::setJavaScriptGarbageCollectorTimerEnabled):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsGCControllercpp">trunk/Source/WebCore/bindings/js/GCController.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsGCControllerh">trunk/Source/WebCore/bindings/js/GCController.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowShellcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowShell.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScriptCachedFrameDatacpp">trunk/Source/WebCore/bindings/js/ScriptCachedFrameData.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScriptControllercpp">trunk/Source/WebCore/bindings/js/ScriptController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformMemoryPressureHandlercpp">trunk/Source/WebCore/platform/MemoryPressureHandler.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacMiscWebCoreStatisticsmm">trunk/Source/WebKit/mac/Misc/WebCoreStatistics.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreStatisticscpp">trunk/Source/WebKit/win/WebCoreStatistics.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebJavaScriptCollectorcpp">trunk/Source/WebKit/win/WebJavaScriptCollector.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleInjectedBundlecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcesscpp">trunk/Source/WebKit2/WebProcess/WebProcess.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/ChangeLog        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2015-06-08  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Access GCController instance via GCController::singleton() instead of a free function
+        https://bugs.webkit.org/show_bug.cgi?id=145776
+
+        Reviewed by Darin Adler.
+
+        Access GCController instance via GCController::singleton() instead of a
+        free function as per coding style and for consistency with other
+        singleton classes in the codebase.
+
+        * bindings/js/GCController.cpp:
+        (WebCore::GCController::singleton):
+        (WebCore::gcController): Deleted.
+        * bindings/js/GCController.h:
+        * bindings/js/JSDOMWindowShell.cpp:
+        (WebCore::JSDOMWindowShell::setWindow):
+        * bindings/js/ScriptCachedFrameData.cpp:
+        (WebCore::ScriptCachedFrameData::clear):
+        * bindings/js/ScriptController.cpp:
+        (WebCore::collectGarbageAfterWindowShellDestruction):
+        * platform/MemoryPressureHandler.cpp:
+        (WebCore::MemoryPressureHandler::releaseCriticalMemory):
+
</ins><span class="cx"> 2015-06-08  Daniel Bates  &lt;dabates@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Mouse release on AutoFill button activates it; should only activate on click
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsGCControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/GCController.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/GCController.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/bindings/js/GCController.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &lt;heap/Heap.h&gt;
</span><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> #include &lt;wtf/FastMalloc.h&gt;
</span><ins>+#include &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="cx"> 
</span><span class="lines">@@ -43,10 +44,10 @@
</span><span class="cx">     JSDOMWindow::commonVM().heap.collectAllGarbage();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-GCController&amp; gcController()
</del><ins>+GCController&amp; GCController::singleton()
</ins><span class="cx"> {
</span><del>-    DEPRECATED_DEFINE_STATIC_LOCAL(GCController, staticGCController, ());
-    return staticGCController;
</del><ins>+    static NeverDestroyed&lt;GCController&gt; controller;
+    return controller;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> GCController::GCController()
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsGCControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/GCController.h (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/GCController.h        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/bindings/js/GCController.h        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -26,36 +26,34 @@
</span><span class="cx"> #ifndef GCController_h
</span><span class="cx"> #define GCController_h
</span><span class="cx"> 
</span><del>-#include &lt;wtf/FastMalloc.h&gt;
</del><ins>+#include &lt;wtf/Forward.h&gt;
</ins><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    class GCController {
-        WTF_MAKE_NONCOPYABLE(GCController); WTF_MAKE_FAST_ALLOCATED;
-        WEBCORE_EXPORT friend GCController&amp; gcController();
</del><ins>+class GCController {
+    WTF_MAKE_NONCOPYABLE(GCController);
+    friend class WTF::NeverDestroyed&lt;GCController&gt;;
+public:
+    WEBCORE_EXPORT static GCController&amp; singleton();
</ins><span class="cx"> 
</span><del>-    public:
-        WEBCORE_EXPORT void garbageCollectSoon();
-        WEBCORE_EXPORT void garbageCollectNow(); // It's better to call garbageCollectSoon, unless you have a specific reason not to.
-        void garbageCollectOnNextRunLoop();
</del><ins>+    WEBCORE_EXPORT void garbageCollectSoon();
+    WEBCORE_EXPORT void garbageCollectNow(); // It's better to call garbageCollectSoon, unless you have a specific reason not to.
+    void garbageCollectOnNextRunLoop();
</ins><span class="cx"> 
</span><del>-        WEBCORE_EXPORT void garbageCollectOnAlternateThreadForDebugging(bool waitUntilDone); // Used for stress testing.
-        WEBCORE_EXPORT void releaseExecutableMemory();
-        WEBCORE_EXPORT void setJavaScriptGarbageCollectorTimerEnabled(bool);
-        WEBCORE_EXPORT void discardAllCompiledCode();
</del><ins>+    WEBCORE_EXPORT void garbageCollectOnAlternateThreadForDebugging(bool waitUntilDone); // Used for stress testing.
+    WEBCORE_EXPORT void releaseExecutableMemory();
+    WEBCORE_EXPORT void setJavaScriptGarbageCollectorTimerEnabled(bool);
+    WEBCORE_EXPORT void discardAllCompiledCode();
</ins><span class="cx"> 
</span><del>-    private:
-        GCController(); // Use gcController() instead
</del><ins>+private:
+    GCController(); // Use singleton() instead.
</ins><span class="cx"> 
</span><del>-        void gcTimerFired();
-        Timer m_GCTimer;
-    };
</del><ins>+    void gcTimerFired();
+    Timer m_GCTimer;
+};
</ins><span class="cx"> 
</span><del>-    // Function to obtain the global GC controller.
-    WEBCORE_EXPORT GCController&amp; gcController() PURE_FUNCTION;
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // GCController_h
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowShellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowShell.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowShell.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowShell.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     ASSERT_ARG(window, window);
</span><span class="cx">     setTarget(vm, window);
</span><span class="cx">     structure()-&gt;setGlobalObject(vm, window);
</span><del>-    gcController().garbageCollectSoon();
</del><ins>+    GCController::singleton().garbageCollectSoon();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSDOMWindowShell::setWindow(PassRefPtr&lt;DOMWindow&gt; domWindow)
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScriptCachedFrameDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScriptCachedFrameData.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScriptCachedFrameData.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/bindings/js/ScriptCachedFrameData.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSLockHolder lock(JSDOMWindowBase::commonVM());
</span><span class="cx">     m_windows.clear();
</span><del>-    gcController().garbageCollectSoon();
</del><ins>+    GCController::singleton().garbageCollectSoon();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScriptControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScriptController.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -69,9 +69,9 @@
</span><span class="cx">     if (MemoryPressureHandler::singleton().isUnderMemoryPressure()) {
</span><span class="cx">         // NOTE: We do the collection on next runloop to ensure that there's no pointer
</span><span class="cx">         //       to the window object on the stack.
</span><del>-        gcController().garbageCollectOnNextRunLoop();
</del><ins>+        GCController::singleton().garbageCollectOnNextRunLoop();
</ins><span class="cx">     } else
</span><del>-        gcController().garbageCollectSoon();
</del><ins>+        GCController::singleton().garbageCollectSoon();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScriptController::initializeThreading()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformMemoryPressureHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/MemoryPressureHandler.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/MemoryPressureHandler.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebCore/platform/MemoryPressureHandler.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx">     {
</span><span class="cx">         ReliefLogger log(&quot;Discard all JIT-compiled code&quot;);
</span><del>-        gcController().discardAllCompiledCode();
</del><ins>+        GCController::singleton().discardAllCompiledCode();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     {
</span><span class="lines">@@ -138,11 +138,11 @@
</span><span class="cx"> 
</span><span class="cx">     if (synchronous == Synchronous::Yes) {
</span><span class="cx">         ReliefLogger log(&quot;Collecting JavaScript garbage&quot;);
</span><del>-        gcController().garbageCollectNow();
</del><ins>+        GCController::singleton().garbageCollectNow();
</ins><span class="cx">     } else {
</span><span class="cx">         // FIXME: We should do a garbage sweep and prune dead resources from the MemoryCache
</span><span class="cx">         // after the garbage collection has completed to free up more memory.
</span><del>-        gcController().garbageCollectSoon();
</del><ins>+        GCController::singleton().garbageCollectSoon();
</ins><span class="cx"> 
</span><span class="cx">         // Do a full sweep of collected objects. garbageCollectNow() already does this so we only
</span><span class="cx">         // need to do this if it isn't called.
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-06-08  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Access GCController instance via GCController::singleton() instead of a free function
+        https://bugs.webkit.org/show_bug.cgi?id=145776
+
+        Reviewed by Darin Adler.
+
+        Access GCController instance via GCController::singleton() instead of a
+        free function as per coding style and for consistency with other
+        singleton classes in the codebase.
+
+        * Misc/WebCoreStatistics.mm:
+        (+[WebCoreStatistics garbageCollectJavaScriptObjects]):
+        (+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:]):
+        (+[WebCoreStatistics setJavaScriptGarbageCollectorTimerEnabled:]):
+        * WebView/WebView.mm:
+        (+[WebView garbageCollectNow]):
+        (+[WebView discardAllCompiledCode]):
+        (-[WebView _close]):
+
</ins><span class="cx"> 2015-06-08  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove more unused Objective-C methods
</span></span></pre></div>
<a id="trunkSourceWebKitmacMiscWebCoreStatisticsmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Misc/WebCoreStatistics.mm (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Misc/WebCoreStatistics.mm        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/mac/Misc/WebCoreStatistics.mm        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -112,17 +112,17 @@
</span><span class="cx"> 
</span><span class="cx"> + (void)garbageCollectJavaScriptObjects
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:(BOOL)waitUntilDone
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</del><ins>+    GCController::singleton().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)setJavaScriptGarbageCollectorTimerEnabled:(BOOL)enable
</span><span class="cx"> {
</span><del>-    gcController().setJavaScriptGarbageCollectorTimerEnabled(enable);
</del><ins>+    GCController::singleton().setJavaScriptGarbageCollectorTimerEnabled(enable);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (size_t)iconPageURLMappingCount
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -1350,7 +1350,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(WebThreadIsCurrent());
</span><span class="cx">     WebKit::MemoryMeasure measurer(&quot;Memory warning: Calling JavaScript GC.&quot;);
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)purgeInactiveFontData
</span><span class="lines">@@ -1371,7 +1371,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(WebThreadIsCurrent());
</span><span class="cx">     WebKit::MemoryMeasure measurer(&quot;Memory warning: Discarding JIT'ed code.&quot;);
</span><del>-    gcController().discardAllCompiledCode();
</del><ins>+    GCController::singleton().discardAllCompiledCode();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (BOOL)isCharacterSmartReplaceExempt:(unichar)character isPreviousCharacter:(BOOL)b
</span><span class="lines">@@ -1802,7 +1802,7 @@
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     // Need this to make leak messages accurate.
</span><span class="cx">     if (applicationIsTerminating) {
</span><del>-        gcController().garbageCollectNow();
</del><ins>+        GCController::singleton().garbageCollectNow();
</ins><span class="cx">         [WebCache setDisabled:YES];
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/win/ChangeLog        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2015-06-08  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Access GCController instance via GCController::singleton() instead of a free function
+        https://bugs.webkit.org/show_bug.cgi?id=145776
+
+        Reviewed by Darin Adler.
+
+        Access GCController instance via GCController::singleton() instead of a
+        free function as per coding style and for consistency with other
+        singleton classes in the codebase.
+
+        * WebCoreStatistics.cpp:
+        (WebCoreStatistics::garbageCollectJavaScriptObjects):
+        (WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
+        (WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled):
+        * WebJavaScriptCollector.cpp:
+        (WebJavaScriptCollector::collect):
+        (WebJavaScriptCollector::collectOnAlternateThread):
+
</ins><span class="cx"> 2015-06-05  Mark Lam  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         finally blocks should not set the exception stack trace when re-throwing the exception.
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreStatisticscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreStatistics.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreStatistics.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/win/WebCoreStatistics.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -246,19 +246,19 @@
</span><span class="cx"> 
</span><span class="cx"> HRESULT WebCoreStatistics::garbageCollectJavaScriptObjects()
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging(BOOL waitUntilDone)
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</del><ins>+    GCController::singleton().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled(BOOL enable)
</span><span class="cx"> {
</span><del>-    gcController().setJavaScriptGarbageCollectorTimerEnabled(enable);
</del><ins>+    GCController::singleton().setJavaScriptGarbageCollectorTimerEnabled(enable);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebJavaScriptCollectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebJavaScriptCollector.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebJavaScriptCollector.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit/win/WebJavaScriptCollector.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -91,14 +91,14 @@
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebJavaScriptCollector::collect()
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HRESULT STDMETHODCALLTYPE WebJavaScriptCollector::collectOnAlternateThread( 
</span><span class="cx">     /* [in] */ BOOL waitUntilDone)
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectOnAlternateThreadForDebugging(!!waitUntilDone);
</del><ins>+    GCController::singleton().garbageCollectOnAlternateThreadForDebugging(!!waitUntilDone);
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-06-08  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Access GCController instance via GCController::singleton() instead of a free function
+        https://bugs.webkit.org/show_bug.cgi?id=145776
+
+        Reviewed by Darin Adler.
+
+        Access GCController instance via GCController::singleton() instead of a
+        free function as per coding style and for consistency with other
+        singleton classes in the codebase.
+
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::garbageCollectJavaScriptObjects):
+        (WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::terminate):
+        (WebKit::WebProcess::didClose):
+        (WebKit::WebProcess::garbageCollectJavaScriptObjects):
+        (WebKit::WebProcess::setJavaScriptGarbageCollectorTimerEnabled):
+
</ins><span class="cx"> 2015-06-08  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Include IndexedDB databases in -[WKWebsiteDataStore allWebsiteDataTypes]
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleInjectedBundlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -497,12 +497,12 @@
</span><span class="cx"> 
</span><span class="cx"> void InjectedBundle::garbageCollectJavaScriptObjects()
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging(bool waitUntilDone)
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</del><ins>+    GCController::singleton().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> size_t InjectedBundle::javaScriptObjectsCount()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (185341 => 185342)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2015-06-09 00:23:45 UTC (rev 185341)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2015-06-09 00:28:19 UTC (rev 185342)
</span><span class="lines">@@ -591,7 +591,7 @@
</span><span class="cx"> void WebProcess::terminate()
</span><span class="cx"> {
</span><span class="cx"> #ifndef NDEBUG
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx">     FontCache::singleton().invalidate();
</span><span class="cx">     MemoryCache::singleton().setDisabled(true);
</span><span class="cx"> #endif
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx">         page-&gt;close();
</span><span class="cx">     pages.clear();
</span><span class="cx"> 
</span><del>-    gcController().garbageCollectSoon();
</del><ins>+    GCController::singleton().garbageCollectSoon();
</ins><span class="cx">     FontCache::singleton().invalidate();
</span><span class="cx">     MemoryCache::singleton().setDisabled(true);
</span><span class="cx"> #endif    
</span><span class="lines">@@ -980,12 +980,12 @@
</span><span class="cx"> 
</span><span class="cx"> void WebProcess::garbageCollectJavaScriptObjects()
</span><span class="cx"> {
</span><del>-    gcController().garbageCollectNow();
</del><ins>+    GCController::singleton().garbageCollectNow();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcess::setJavaScriptGarbageCollectorTimerEnabled(bool flag)
</span><span class="cx"> {
</span><del>-    gcController().setJavaScriptGarbageCollectorTimerEnabled(flag);
</del><ins>+    GCController::singleton().setJavaScriptGarbageCollectorTimerEnabled(flag);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcess::handleInjectedBundleMessage(const String&amp; messageName, const UserData&amp; messageBody)
</span></span></pre>
</div>
</div>

</body>
</html>