Changeset 118702 in webkit
- Timestamp:
- May 28, 2012 12:21:23 PM (12 years ago)
- Location:
- trunk/Source/WebKit/blackberry
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/blackberry/Api/WebPage.cpp
r118701 r118702 885 885 886 886 #if USE(ACCELERATED_COMPOSITING) 887 if (isAcceleratedCompositingActive() && !compositorDrawsRootLayer()) 888 syncDestroyCompositorOnCompositingThread(); 887 if (isAcceleratedCompositingActive()) { 888 Platform::userInterfaceThreadMessageClient()->dispatchSyncMessage( 889 Platform::createMethodCallMessage(&WebPagePrivate::destroyLayerResources, this)); 890 } 889 891 #endif 890 892 m_previousContentsSize = IntSize(); … … 5896 5898 void WebPagePrivate::destroyCompositor() 5897 5899 { 5898 // We shouldn't release the compositor unless we created and own the5899 // context. If the compositor was created from the WebPageCompositor API,5900 // keep it around and reuse it later.5901 if (!m_ownedContext)5902 return;5903 5904 5900 // m_compositor is a RefPtr, so it may live on beyond this point. 5905 5901 // Disconnect the compositor from us -
trunk/Source/WebKit/blackberry/ChangeLog
r118701 r118702 1 2012-05-28 Arvid Nilsson <anilsson@rim.com> 2 3 [BlackBerry] Dangling pointer in WebPagePrivate::setCompositor() message 4 https://bugs.webkit.org/show_bug.cgi?id=87590 5 6 Reviewed by Rob Buis. 7 8 A crash would be seen in GuardedPointerBase::getWithGuardLocked when 9 attempting to unpickle and execute serialized call to setCompositor. 10 11 The problem was that the message had been created with a dangling 12 pointer as the target. The web page failed to inform its compositor 13 that it was being destroyed due to an early return in 14 WebPagePrivate::destroyCompositor. 15 16 The root cause was that a method called "destroyCompositor" was being 17 called in two situations, when navigating to a new page as well as when 18 actually deleting the web page. And in one case, we really only wanted 19 to free up some memory by clearing textures, while in the other case we 20 really did want to destroy the compositor. 21 22 Fixed by calling a method to release textures when that's what we want 23 to do, and calling a method to destroy the compositor when that's what 24 we want to do, and making that latter method unconditional. 25 26 Reviewed internally by Jeff Rogers. 27 28 PR #156765 29 30 * Api/WebPage.cpp: 31 (BlackBerry::WebKit::WebPagePrivate::setLoadState): 32 (BlackBerry::WebKit::WebPagePrivate::destroyCompositor): 33 1 34 2012-05-28 Arvid Nilsson <anilsson@rim.com> 2 35
Note: See TracChangeset
for help on using the changeset viewer.