| Index: Source/modules/webdatabase/Database.cpp
|
| diff --git a/Source/modules/webdatabase/Database.cpp b/Source/modules/webdatabase/Database.cpp
|
| index 2a55f3d859969c521302c469d57264f3ce0cfe0f..e96dc8cc48e6da8c81aecdfee8a8b2dd4db0ffbc 100644
|
| --- a/Source/modules/webdatabase/Database.cpp
|
| +++ b/Source/modules/webdatabase/Database.cpp
|
| @@ -143,7 +143,7 @@ void Database::runTransaction(PassOwnPtr<SQLTransactionCallback> callback, PassO
|
| #if !ASSERT_DISABLED
|
| SQLTransactionErrorCallback* originalErrorCallback = errorCallback.get();
|
| #endif
|
| - RefPtr<SQLTransaction> transaction = SQLTransaction::create(this, callback, successCallback, errorCallback, readOnly);
|
| + RefPtrWillBeRawPtr<SQLTransaction> transaction = SQLTransaction::create(this, callback, successCallback, errorCallback, readOnly);
|
| RefPtr<SQLTransactionBackend> transactionBackend = backend()->runTransaction(transaction, readOnly, changeVersionData);
|
| if (!transactionBackend) {
|
| OwnPtr<SQLTransactionErrorCallback> callback = transaction->releaseErrorCallback();
|
| @@ -155,9 +155,11 @@ void Database::runTransaction(PassOwnPtr<SQLTransactionCallback> callback, PassO
|
| }
|
| }
|
|
|
| +// This object is constructed in a database thread, and destructed in the
|
| +// context thread.
|
| class DeliverPendingCallbackTask FINAL : public ExecutionContextTask {
|
| public:
|
| - static PassOwnPtr<DeliverPendingCallbackTask> create(PassRefPtr<SQLTransaction> transaction)
|
| + static PassOwnPtr<DeliverPendingCallbackTask> create(PassRefPtrWillBeRawPtr<SQLTransaction> transaction)
|
| {
|
| return adoptPtr(new DeliverPendingCallbackTask(transaction));
|
| }
|
| @@ -168,12 +170,12 @@ public:
|
| }
|
|
|
| private:
|
| - DeliverPendingCallbackTask(PassRefPtr<SQLTransaction> transaction)
|
| + DeliverPendingCallbackTask(PassRefPtrWillBeRawPtr<SQLTransaction> transaction)
|
| : m_transaction(transaction)
|
| {
|
| }
|
|
|
| - RefPtr<SQLTransaction> m_transaction;
|
| + RefPtrWillBeCrossThreadPersistent<SQLTransaction> m_transaction;
|
| };
|
|
|
| void Database::scheduleTransactionCallback(SQLTransaction* transaction)
|
|
|