Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: Source/modules/webdatabase/Database.cpp

Issue 196533003: Oilpan: Prepare to move AbstractSQLTransaction and SQLTransaction to Oilpan heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698