Changeset 118627 in webkit
- Timestamp:
- May 27, 2012, 7:54:52 AM (14 years ago)
- Location:
- trunk/Source/WebKit/blackberry
- Files:
-
- 4 edited
-
Api/WebPage.cpp (modified) (2 diffs)
-
Api/WebPageCompositor.cpp (modified) (2 diffs)
-
Api/WebPageCompositor_p.h (modified) (1 diff)
-
ChangeLog (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/blackberry/Api/WebPage.cpp
r118530 r118627 5631 5631 5632 5632 m_compositor = compositor; 5633 if (m_compositor) 5634 m_compositor->setPage(this); 5633 5635 5634 5636 // The previous compositor, if any, has now released it's OpenGL resources, … … 5863 5865 return; 5864 5866 5867 // m_compositor is a RefPtr, so it may live on beyond this point. 5868 // Disconnect the compositor from us 5869 m_compositor->setPage(0); 5865 5870 m_compositor.clear(); 5866 5871 m_ownedContext.clear(); -
trunk/Source/WebKit/blackberry/Api/WebPageCompositor.cpp
r118625 r118627 191 191 using namespace BlackBerry::Platform; 192 192 193 webKitThreadMessageClient()->dispatchMessage(createMethodCallMessage(&WebPagePrivate::setCompositor, d->page(), PassRefPtr<WebPageCompositorPrivate>(0))); 193 // If we're being destroyed before the page, send a message to disconnect us 194 if (d->page()) 195 webKitThreadMessageClient()->dispatchMessage(createMethodCallMessage(&WebPagePrivate::setCompositor, d->page(), PassRefPtr<WebPageCompositorPrivate>(0))); 194 196 d->compositorDestroyed(); 195 197 d->deref(); … … 198 200 WebPageCompositorClient* WebPageCompositor::client() const 199 201 { 200 return 0;202 return d->client(); 201 203 } 202 204 -
trunk/Source/WebKit/blackberry/Api/WebPageCompositor_p.h
r114624 r118627 83 83 84 84 WebPagePrivate* page() const { return m_webPage; } 85 void setPage(WebPagePrivate* page) { m_webPage = page; } 85 86 WebPageCompositorClient* client() const { return m_client; } 86 87 void compositorDestroyed(); -
trunk/Source/WebKit/blackberry/ChangeLog
r118626 r118627 1 2012-05-27 Arvid Nilsson <anilsson@rim.com> 2 3 [BlackBerry] Crash when deleting WebPageCompositor 4 https://bugs.webkit.org/show_bug.cgi?id=87589 5 6 Reviewed by Rob Buis. 7 8 The WebPageCompositorPrivate is reference counted, so it may outlive 9 either the WebPage or the WebPageCompositor, depending on who releases 10 its reference first. 11 12 Fixed by disconnecting the objects properly, regardless of who goes 13 away first. 14 15 Reviewed internally by Mike Lattanzio. 16 17 PR #156444 18 19 * Api/WebPage.cpp: 20 (BlackBerry::WebKit::WebPagePrivate::setCompositor): 21 (BlackBerry::WebKit::WebPagePrivate::destroyCompositor): 22 * Api/WebPageCompositor.cpp: 23 (BlackBerry::WebKit::WebPageCompositor::~WebPageCompositor): 24 (BlackBerry::WebKit::WebPageCompositor::client): 25 * Api/WebPageCompositor_p.h: 26 (BlackBerry::WebKit::WebPageCompositorPrivate::setPage): 27 1 28 2012-05-27 Arvid Nilsson <anilsson@rim.com> 2 29
Note:
See TracChangeset
for help on using the changeset viewer.