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

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

Issue 103473002: Manage WebSQL callbacks with OwnPtr instead of refcounting (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix RefPtr/OwnPtr transition gcc errors Created 7 years 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
« no previous file with comments | « Source/modules/webdatabase/SQLTransaction.h ('k') | Source/modules/webdatabase/SQLTransactionBackendSync.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/webdatabase/SQLTransaction.cpp
diff --git a/Source/modules/webdatabase/SQLTransaction.cpp b/Source/modules/webdatabase/SQLTransaction.cpp
index 3a978a8e05ccf6d977d582e7188e5ae711dfd6fd..bff86a07f346b5bad0d30b7f52c1f4276cec39e0 100644
--- a/Source/modules/webdatabase/SQLTransaction.cpp
+++ b/Source/modules/webdatabase/SQLTransaction.cpp
@@ -48,15 +48,15 @@
namespace WebCore {
-PassRefPtr<SQLTransaction> SQLTransaction::create(Database* db, PassRefPtr<SQLTransactionCallback> callback,
- PassRefPtr<SQLVoidCallback> successCallback, PassRefPtr<SQLTransactionErrorCallback> errorCallback,
+PassRefPtr<SQLTransaction> SQLTransaction::create(Database* db, PassOwnPtr<SQLTransactionCallback> callback,
+ PassOwnPtr<SQLVoidCallback> successCallback, PassOwnPtr<SQLTransactionErrorCallback> errorCallback,
bool readOnly)
{
return adoptRef(new SQLTransaction(db, callback, successCallback, errorCallback, readOnly));
}
-SQLTransaction::SQLTransaction(Database* db, PassRefPtr<SQLTransactionCallback> callback,
- PassRefPtr<SQLVoidCallback> successCallback, PassRefPtr<SQLTransactionErrorCallback> errorCallback,
+SQLTransaction::SQLTransaction(Database* db, PassOwnPtr<SQLTransactionCallback> callback,
+ PassOwnPtr<SQLVoidCallback> successCallback, PassOwnPtr<SQLTransactionErrorCallback> errorCallback,
bool readOnly)
: m_database(db)
, m_callbackWrapper(callback, db->executionContext())
@@ -140,7 +140,7 @@ SQLTransactionState SQLTransaction::deliverTransactionCallback()
bool shouldDeliverErrorCallback = false;
// Spec 4.3.2 4: Invoke the transaction callback with the new SQLTransaction object
- RefPtr<SQLTransactionCallback> callback = m_callbackWrapper.unwrap();
+ OwnPtr<SQLTransactionCallback> callback = m_callbackWrapper.unwrap();
if (callback) {
m_executeSqlAllowed = true;
shouldDeliverErrorCallback = !callback->handleEvent(this);
@@ -162,7 +162,7 @@ SQLTransactionState SQLTransaction::deliverTransactionErrorCallback()
{
// Spec 4.3.2.10: If exists, invoke error callback with the last
// error to have occurred in this transaction.
- RefPtr<SQLTransactionErrorCallback> errorCallback = m_errorCallbackWrapper.unwrap();
+ OwnPtr<SQLTransactionErrorCallback> errorCallback = m_errorCallbackWrapper.unwrap();
if (errorCallback) {
// If we get here with an empty m_transactionError, then the backend
// must be waiting in the idle state waiting for this state to finish.
@@ -218,7 +218,7 @@ SQLTransactionState SQLTransaction::deliverQuotaIncreaseCallback()
SQLTransactionState SQLTransaction::deliverSuccessCallback()
{
// Spec 4.3.2.8: Deliver success callback.
- RefPtr<SQLVoidCallback> successCallback = m_successCallbackWrapper.unwrap();
+ OwnPtr<SQLVoidCallback> successCallback = m_successCallbackWrapper.unwrap();
if (successCallback)
successCallback->handleEvent();
@@ -251,7 +251,7 @@ void SQLTransaction::performPendingCallback()
runStateMachine();
}
-void SQLTransaction::executeSQL(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLStatementCallback> callback, PassRefPtr<SQLStatementErrorCallback> callbackError, ExceptionState& exceptionState)
+void SQLTransaction::executeSQL(const String& sqlStatement, const Vector<SQLValue>& arguments, PassOwnPtr<SQLStatementCallback> callback, PassOwnPtr<SQLStatementErrorCallback> callbackError, ExceptionState& exceptionState)
{
if (!m_executeSqlAllowed || !m_database->opened()) {
exceptionState.throwUninformativeAndGenericDOMException(InvalidStateError);
@@ -299,4 +299,9 @@ void SQLTransaction::clearCallbackWrappers()
m_errorCallbackWrapper.clear();
}
+PassOwnPtr<SQLTransactionErrorCallback> SQLTransaction::releaseErrorCallback()
+{
+ return m_errorCallbackWrapper.unwrap();
+}
+
} // namespace WebCore
« no previous file with comments | « Source/modules/webdatabase/SQLTransaction.h ('k') | Source/modules/webdatabase/SQLTransactionBackendSync.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698