Title: [91571] trunk/Source/WebCore
- Revision
- 91571
- Author
- [email protected]
- Date
- 2011-07-22 10:07:15 -0700 (Fri, 22 Jul 2011)
Log Message
Fix crash in IDBRequest::abort
https://bugs.webkit.org/show_bug.cgi?id=64740
Patch by David Grogan <[email protected]> on 2011-07-22
Reviewed by Nate Chapin.
Tested manually with the testcase in the bug.
* storage/IDBRequest.cpp:
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::abort):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (91570 => 91571)
--- trunk/Source/WebCore/ChangeLog 2011-07-22 15:50:35 UTC (rev 91570)
+++ trunk/Source/WebCore/ChangeLog 2011-07-22 17:07:15 UTC (rev 91571)
@@ -1,3 +1,16 @@
+2011-07-22 David Grogan <[email protected]>
+
+ Fix crash in IDBRequest::abort
+ https://bugs.webkit.org/show_bug.cgi?id=64740
+
+ Reviewed by Nate Chapin.
+
+ Tested manually with the testcase in the bug.
+
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::~IDBRequest):
+ (WebCore::IDBRequest::abort):
+
2011-07-22 Patrick Gansterer <[email protected]>
Replace preprocessor statements in IDL files with Conditional attribute
Modified: trunk/Source/WebCore/storage/IDBRequest.cpp (91570 => 91571)
--- trunk/Source/WebCore/storage/IDBRequest.cpp 2011-07-22 15:50:35 UTC (rev 91570)
+++ trunk/Source/WebCore/storage/IDBRequest.cpp 2011-07-22 17:07:15 UTC (rev 91571)
@@ -66,7 +66,7 @@
IDBRequest::~IDBRequest()
{
- ASSERT(m_readyState == DONE || m_readyState == EarlyDeath);
+ ASSERT(m_readyState == DONE || m_readyState == EarlyDeath || !scriptExecutionContext());
if (m_transaction)
m_transaction->unregisterRequest(this);
}
@@ -149,8 +149,11 @@
ASSERT(m_readyState == DONE);
return;
}
+ // FIXME: Remove isDocument check when
+ // https://bugs.webkit.org/show_bug.cgi?id=57789 is resolved.
+ if (!scriptExecutionContext() || !scriptExecutionContext()->isDocument())
+ return;
- ASSERT(scriptExecutionContext()->isDocument());
EventQueue* eventQueue = static_cast<Document*>(scriptExecutionContext())->eventQueue();
for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes