Title: [113923] trunk/Source/WebCore
Revision
113923
Author
[email protected]
Date
2012-04-11 16:28:30 -0700 (Wed, 11 Apr 2012)

Log Message

LayerFlushScheduler's run loop observer should have an autorelease pool.
https://bugs.webkit.org/show_bug.cgi?id=83729

Reviewed by Dan Bernstein.

LayerFlushScheduler's run loop observer needs an autorelease pool.
NSApplication creates one, but it is only drained after processing user
input. In the case where a WebView is displaying composited content but
not receiving user input, NSApplication's pool will accumulate a large
number of objects autoreleased by the run loop observer. Have
LayerFlushScheduler create an autorelease pool that is drained after
each run loop observer callback.

* platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
(WebCore::LayerFlushScheduler::runLoopObserverCallback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (113922 => 113923)


--- trunk/Source/WebCore/ChangeLog	2012-04-11 23:20:55 UTC (rev 113922)
+++ trunk/Source/WebCore/ChangeLog	2012-04-11 23:28:30 UTC (rev 113923)
@@ -1,3 +1,21 @@
+2012-04-11  Andy Estes  <[email protected]>
+
+        LayerFlushScheduler's run loop observer should have an autorelease pool.
+        https://bugs.webkit.org/show_bug.cgi?id=83729
+
+        Reviewed by Dan Bernstein.
+
+        LayerFlushScheduler's run loop observer needs an autorelease pool.
+        NSApplication creates one, but it is only drained after processing user
+        input. In the case where a WebView is displaying composited content but
+        not receiving user input, NSApplication's pool will accumulate a large
+        number of objects autoreleased by the run loop observer. Have
+        LayerFlushScheduler create an autorelease pool that is drained after
+        each run loop observer callback.
+
+        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
+        (WebCore::LayerFlushScheduler::runLoopObserverCallback):
+
 2012-04-11  Antti Koivisto  <[email protected]>
 
         Split CSSStyleSheet into internal and CSSOM type

Modified: trunk/Source/WebCore/platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp (113922 => 113923)


--- trunk/Source/WebCore/platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp	2012-04-11 23:20:55 UTC (rev 113922)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp	2012-04-11 23:28:30 UTC (rev 113923)
@@ -29,6 +29,8 @@
 
 #include "LayerFlushScheduler.h"
 
+#include "AutodrainedPool.h"
+
 namespace WebCore {
 
 static const CFIndex CoreAnimationRunLoopOrder = 2000000;
@@ -56,6 +58,7 @@
     ASSERT(m_runLoopObserver);
     ASSERT(!m_isSuspended);
 
+    AutodrainedPool pool;
     if (m_client->flushLayers())
         invalidate();
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to